ファイルを含む「リーフ」ディレクトリのリストを取得したかったのですが、それらのディレクトリのいずれにも2つの時間範囲内に変更されたファイルが含まれていない場合に限りました。私は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"': そのようなファイルやディレクトリはありません
ここで何が起こっているのですか?