我想获取包含文件的“叶”目录列表,但前提是这些目录中的任何一个都不包含在两个时间范围内更改的文件。我认为 bash 脚本会很快。我发现了这个:https ://superuser.com/questions/195879/using-find-to-list-only-directories-with-no-more-childs 现在我有了这个:
#!/bin/bash
#get list of deepest directory's with files
#format output so directory's can contain spaces
check_dirs=$( { find . -type d ! -empty ; echo; } |
awk 'index($0,prev"/")!=1 && NR!=1 {printf("\"%s\" ",prev);}
{sub(/\/$/,""); prev=$0}' )
#run find once but get two lists of files to bash arrays --todo
find ${check_dirs} \( -ctime 3 -print \), \( -ctime 8 -print \)
find 在手动运行时处理带有空格的空格分隔的引号路径列表,但是在脚本中运行时它会在空格上中断并添加单引号?我得到这种输出:
find: `"/path/to/suff"': 没有这样的文件或目录
find: `"/path/to/suff1"': 没有这样的文件或目录
find: `"/path/to/suffwith"': 没有这样的文件或目录
find: `"space"': 没有这样的文件或目录
find: `"in"': 没有这样的文件或目录
find: `"name"': 没有这样的文件或目录
find: `"/path/to/suff2"': 没有这样的文件或目录
这里发生了什么事?