• 締切済み

lsにて別ディレクトリの情報を一括表示し、日付でソートするには?

別ディレクトリで管理しているファイルを一括表示し、さらにタイムスタンプでソート するには、どのようにしたらよいでしょうか? 例 /temp配下にAとBディレクトリあるとします。 $ ls --full-time /temp/* /temp/A: total 0 drwxr-x--- 6 root root 4096 Wed Aug 04 16:58:01 2006 BOJTS drwxr-x--- 6 root root 4096 Wed Aug 04 16:57:28 2006 BOJTX /temp/B: total 0 drwxr-x--- 6 root root 4096 Wed Aug 09 16:59:03 2006 JTOTX drwxr-x--- 6 root root 4096 Wed Aug 08 16:58:39 2006 JTOTS drwxr-x--- 6 root root 4096 Wed Aug 01 16:55:25 2006 JTENX drwxr-x--- 6 root root 4096 Wed Aug 01 16:55:06 2006 JTTRX となっているものを以下のように一度のlsコマンドで日付順に並べ替えるには、 どうしたらよいでしょうか。 drwxr-x--- 6 root root 4096 Wed Aug 09 16:59:03 2006 JTOTX drwxr-x--- 6 root root 4096 Wed Aug 08 16:58:39 2006 JTOTS drwxr-x--- 6 root root 4096 Wed Aug 04 16:58:01 2006 BOJTS drwxr-x--- 6 root root 4096 Wed Aug 04 16:57:28 2006 BOJTX drwxr-x--- 6 root root 4096 Wed Aug 01 16:55:25 2006 JTENX drwxr-x--- 6 root root 4096 Wed Aug 01 16:55:06 2006 JTTRX

みんなの回答

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.3

Ano.2で提案された方式ですが,異なる月の日付が付いたファイルが混在しているとダメですよね. たとえばJulとAugが混在していた場合を考えてみてください. たまたま身近にあるdebianlinuxで ls --fuill-timeを試してみると, 2006-04-21 17:24:30.000000000 +0900 といった時刻表示になります.これならうまくsortできますね.

  • amru05
  • ベストアンサー率63% (33/52)
回答No.2

sort の -k オプションと一緒に使えばよいでしょう。 例)$ ls --full-time /temp/* | sort -k 7,10 -k の後ろに、ソートしたいカラムの開始、終了位置を指定できますので、例では、7=Augなどの月から、10=2006などの年までの範囲を指定すればよいと思います(カラムの7,10は、実際に調整してみてください)

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.1

lsだけでは、できません。 ただ、ファイル数が少なければ、 ls -ltr /temp/A/* /tmp/B/* で、古い順に並んで出てきます。

関連するQ&A