ファイルが多すぎない場合の最善の方法の 1 つは、 を使用ls
して並べ替え自体を行うことです。
名前でソートし、1 行に 1 つのファイルを出力します。
find $CATALOG -size +$SIZE -exec ls -1 {} +
サイズで並べ替え、1 行に 1 ファイルを出力します。
find $CATALOG -size +$SIZE -exec ls -S1 {} +
変更時刻でソートし、1 行に 1 ファイルを出力します。
find $CATALOG -size +$SIZE -exec ls -t1 {} +
スイッチで遊ぶこともできls
ます: 人間が読めるサイズの長いリスト形式で、変更時間 (小さい方が先) で並べ替えます。
find $CATALOG -size +$SIZE -exec ls -hlrt {} +
ああ、ファイルだけにしたいかもしれませんfind
(ディレクトリは無視してください):
find $CATALOG -size +$SIZE -type f -exec ls -hlrt {} +
最後に、いくつかの注意事項: bash で大文字の変数名を使用しないようにし (悪い習慣と見なされます)、バック ティックを使用しないようにして$(...)
ください。例えば、
results=$(find "$catalog" -size +$size -type f -exec ls -1rt {} +)
また、前の行のようにすべての結果を文字列に入れたいとは思わないでしょう。おそらく、結果を配列に入れたいと思うでしょう。その場合、次のmapfile
ように使用します。
mapfile -t results < <(find "$catalog" -size +$size -type f -exec ls -1rt {} +)