サブディレクトリを含む更新日でファイルをソートしたい


17

サブディレクトリを含む更新日でファイルのみをソートしたい。

わかったls -lrtR | grep ^-。しかし、更新日でソートするようには見えません。

そして、このリストをファイルに保存する必要があります。出来ますか?

Apr 01 2010  InsideDoosanServiceImpl.class  // in A directory
Apr 08 2010  MainController.class  // in B directory
Apr 07 2010  RecommendController.class  // in B directory
Apr 01 2010  MainDao.class  // in B directory

リスト全体が日付順ではなく、最初にフォルダ順、日付順の順になっています。

すべてのサブディレクトリを含めて、日付順にリストされたリストが必要です。

回答:


12

私はあなたが正確に何を意味するのか分かりませんupdate datesが、あなたは-r人によればこれを行うオプションを使用しています-

-rソート順を逆にして、逆の辞書式順序を取得するか、最も古いエントリを最初に取得します(サイズによるソートと組み合わせた場合は、最大のファイルを最後に取得します)

時間でソートされたファイルが必要な場合、これで十分だと思います。

ls -lRt

lsそれまでにリストされた他のすべてのものが必要ない場合は、使用できます

ls -1Rt

結果をファイルにキャプチャするには、リダイレクト演算子>を使用してファイル名を指定します。だからあなたはこのようなことをすることができます-

ls -lRt > sortedfile.list

更新:

find . -type f -exec ls -lt {} +

最後にファイルが変更されたとき:)

ソート結果は、フォルダーと日付順に並べられます。日付とフォルダでソートしたいのですが、可能ですか?

申し訳ありませんが、出力を表示してもらえますか?あなたが使用しls -lrtた場合、私はフォルダの並べ替えにはまったく従いませんでした。
ジャイパルシン

// Jaypal Singh、出力をquiestion↑:)に更新しました。あなたがそれを理解し、私の悪い英語を申し訳なく思っています。

1
ファイルリストがにxargs複数の呼び出しを行うのに十分な長さがある場合、これは失敗lsします。ファイルは各ls呼び出し内でのみ適切にソートされますが、出力では一貫したグローバルな順序がないためです。
ブランドンロードス

19

lsを使用すると、-Rはディレクトリを再帰し、-tは変更によってソートします。ただし、ディレクトリを再帰的に走査し、各ディレクトリに-tを適用します。すべてのディレクトリからすべてのファイルを蓄積してからソートするわけではありません。(私が理解している限り、後者はあなたが望むものです)

gnu find(1)を使用すると、エポックからの秒数とファイル名を含む出力形式を指定でき、これをsort(1)にパイプできます。

find . -type f -printf "%T@ %f\n" | sort -n > out.txt

いやはGNU find助けをします。しかし、OPはAIXマシンで動作するためGNU find、彼は利用できませんでした。
ジェイパルシン

それは残念だlsソートする前に蓄積ファイルに対して行うことができません。lsと比較して非常に高速findです。
ネイサンReinstateMonicaアーサー

lsfind同じデータを読み取るため、lsがfindよりもかなり高速である理由は想像できません。私のシステムでは、検索は5倍高速です(約50万のファイルを検索)
ロルフランダー

7
完全な日付と時刻、およびファイル名だけでなく出力のパスも必要になる場合がありfind . -type f -printf "%T@ %Tc %p\n" | sort -n > out.txtます1427913836.2330520210 wed 1 apr 2015 20:43:56 ./subdir/file.txt。その場合は、書式設定文字列を変更して、出力エントリを次のようにします。
カール

すごい。それは本当に助けになりました。私はずっと昔からサブディレクトリに分類する方法を探していました!
BHU Boue vidya
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.