0

このコマンドを実行すると:

root:/home/mws 0$ ls -lrt `find /home/data/ll_misc_logs/ -mtime +20`

また、mtime 設定 (20 日) を満たすファイルはありません。現在のディレクトリ /home/mws の内容が一覧表示されます。なぜですか? 何も返さない、またはメッセージを返す方法はありますか?

4

2 に答える 2

3

mtime 設定を満たすファイルがない場合、の出力はfind ....... なしに展開されます。その場合、コマンドは になりls -lrt、常に現在のディレクトリがリストされます。

通常の実行であまり多くのファイルがない場合は、次の方法でうまくいく可能性があります。

find /home/data/ll_misc_logs -mtime +20 -print0 | xargs -0 -r ls -ltr

しかし、非常に多くのファイルを取得xargsして複数の呼び出しに分割することを決定した場合、おそらく希望通りの結果にはなりません。

それが私を導きます...あなたは正確に何をしようとしていますか? 表面的には、「変更時間順に古いファイルを表示してください」のように見えますが、より効率的な (そしてエラーが発生しにくい) 方法で解決できる大きなものの一部である可能性があります...

于 2013-06-28T16:50:28.400 に答える