ディレクトリ内のすべてのファイルを逆の時系列でリストするにはどうすればよいですか?
質問
ようなことをしたいです ls -t
ただし、サブディレクトリのファイルも含まれています。しかし問題は、私がのように形成されたくないということです ls -R
そうです、これは次のようなものです。
[test]$ ls -Rt
b testdir test
./testdir:
a
のようにフォーマットされたい find
コマンドは、サブディレクトリにファイルを表示します。つまり:
[test]$ find .
.
./b
./test
./testdir
./testdir/a
しかし、何 find
最後の更新時間までに、結果を時系列に注文することはないようです。
では、ディレクトリとサブディレクトリ内のすべてのファイルを、その形式でどのようにリストできますか find
しかし、逆の時系列の順序でありますか?
解決
これを試してみてください:
find . -type f -printf "%T@ %p\n" | sort -nr | cut -d\ -f2-
他のヒント
ls -lR
ホームディレクトリにすべてのファイル、ディレクトリ、サブディレクトリを表示することですls -lR | more
フロー内のすべてのファイルを表示するために使用されます。
最大引数制限内でフィットを表示するファイルの数がグローブビングを使用して、グローブスターサポートがある場合は再帰を使用して、必要なものを取得できます。
ちょうど2層の深い使用の場合: ls -d * */*
Globstarで、再帰使用のための使用: ls -d **/*
-d
への議論 ls
ディレクトリを反論しないことは、議論として渡されないことを伝えます(あなたはシェルグローブビングを使用して再帰を行うため)。これを防ぎます ls
再帰フォーマットを使用します。
find -type f -print0 | xargs -0 ls -t
欠点:一定量のファイルに対してのみ機能します。あなたが非常に大量のファイルを持っているなら、あなたはもっと複雑なものが必要です
試すfind . -type d
またfind . -type d -ls
これを試して:
ls -ltraR |egrep -v '\.$|\.\.|\.:|\.\/|total' |sed '/^$/d'
のコマンド WFG5475の答え 適切に動作しているので、ディレクトリとサブディレクトリにファイルのみを表示するために1つのものを追加する必要があります。
ls -ltraR |egrep -v '\.$|\.\.|\.:|\.\/|total|^d' |sed '/^$/d'
1つ追加しました: ^d
リスト出力のすべてのディレクトリを無視する