ls:タイムスタンプが名前と同じ場合、タイムスタンプに基づいてソート(リバース)ソート(リバースではない)

ls:タイムスタンプが名前と同じ場合、タイムスタンプに基づいてソート(リバース)ソート(リバースではない)

リバースタイムスタンプに基づいてディレクトリをソートしたいがタイムスタンプの名前の順序が同じ場合(リバースではない)

ls -tr両方のファイルの名前によるタイムスタンプの順序は同じですが、モードが逆の場合は、次のようにします。

答え1

このようなものを使用できます

stat --printf "%Y %n\0" * | sort -z -k1,1n -k2
# or quoted file names:
stat --printf "%Y %N\0" * | sort -z -k1,1n -k2
  • 最初のソート基準はフィールド1(%Y- >タイムスタンプ(精度:秒))です。N数値の並べ替え。
  • いいえアル字型「最新順」と似ており、ls -tこれはすでに正反対ですが、これを変更するsort -nために使用できます-k1,1nr
  • 2番目のソート基準は、フィールド2から行末まで(%nまたは%N-->ファイル名)です。
  • ファイル名(\n

tr次に、必要に応じてフォーマットを使用および/または変更しますsed

... | tr '\0' '\n'
# or just print the filenames:
... | sed 's/^[0-9]* //;s/$/\n/;s/\x0[0-9]* /\n/g'

出力:

$ touch d; sleep 1; touch b c; sleep 1; touch a;
$ ls -tr
d  c  b  a
$ stat --printf "%Y %n\0" * | sort -z -k1,1n -k2 | sed 's/^[0-9]* //;s/$/\n/;s/\x0[0-9]* /  /g'
d  b  c  a

関連情報