web-dev-qa-db-ja.com

無効な述語を持つファイルを検索する

だから、私は40日より古いすべてのファイルを取得しようとしています。 (したがって、-mtime -40)が、一部のファイルに無効な述語があるため、見つけることができません。 (現在または子孫であるかどうかにかかわらず、すべてのファイルを見つける必要があります。

$ find . -name * -mtime -40 > FILE_LIST
find: invalid predicate `-file-name.xls'

その後...

$ find ./* -name * -mtime -40 > FILE_LIST
find: invalid predicate `-file-name.xls'

そして、これらのどちらもそれをしていないようです。

1
Jeff Ancel

問題は、*-name *がシェルによってファイルリストに展開され、そのコマンドラインで検索するために渡されることだと思います。次に、findコマンドはコマンドラインを解析し、コマンドライン引数として解釈しようとする-file-name.xlsを見つけます。

試してみてください

find .  -mtime -40 > FILE_LIST

これはあなたが望むことをするはずです。

1
user9517

AHHHH .... manページを読むと、-mtime-40は40日未満のファイルを提供します。あなたがしたいことはこれではありません:

 find . -mtime +40 >FILE_LIST

40日以上経過したファイルを検索/一覧表示する場合。

1
mdpc