プロが教える店舗&オフィスのセキュリティ対策術

別ディレクトリで管理しているファイルを一括表示し、さらにタイムスタンプでソート
するには、どのようにしたらよいでしょうか?
例 /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 回答 (3件)

Ano.2で提案された方式ですが,異なる月の日付が付いたファイルが混在しているとダメですよね.



たとえばJulとAugが混在していた場合を考えてみてください.

たまたま身近にあるdebianlinuxで
ls --fuill-timeを試してみると,
2006-04-21 17:24:30.000000000 +0900
といった時刻表示になります.これならうまくsortできますね.
    • good
    • 0

sort の -k オプションと一緒に使えばよいでしょう。


例)$ ls --full-time /temp/* | sort -k 7,10

-k の後ろに、ソートしたいカラムの開始、終了位置を指定できますので、例では、7=Augなどの月から、10=2006などの年までの範囲を指定すればよいと思います(カラムの7,10は、実際に調整してみてください)
    • good
    • 0

lsだけでは、できません。



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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!