3

ファイルのランダムリストを変更時間でソートする一般的な方法を探しているので、次のようになります。

./make_list_of_files | some_sorter_by_mtime

私の正しい解決策は次のとおりです(ここにmake_list_of_filesコマンドがありますfind):

find / -type f -print |\
  perl -nle 'push @in,$_;END {@out = sort{ (stat($a))[9] <=> (stat($b))[9] } @in; $,="\n";print @out}'

より簡単な解決策はありますか (例えば perl なし)?

4

3 に答える 3

6

たとえばsome_sorter_by_mtime、次のようにする必要があります。

xargs stat -f "%m %N" | sort -n | cut -f2-

背後にあるアイデアは次のとおりです。

  • ファイルの変更時刻とファイル名を出力する
  • 出力を数値的に並べ替えます(変更時間順)
  • 時間フィールドを切り取る

それで、

find / -type f -print | xargs stat -f "%m %N" | sort -n | cut -f2-
于 2012-09-20T08:15:58.180 に答える
2

このような?

find / -type f -print | xargs ls -l --time-style=full-iso | sort -k6 -k7 | sed 's/^.* \//\//'
于 2012-09-20T08:48:49.483 に答える
-2

はい、perlなし:

find / -type f -exec ls -lrt '{}' \+

達人。

于 2012-09-20T07:50:47.047 に答える