• ベストアンサー

コマンド教えて下さい

新しく更新された順にファイルの一覧を表示したいのですが、このとき表示させるファイルの数を引数で指定するコマンドを作りたいのですが、どうすればよいでしょうか? 例えば /home/pp ディレクトリ以下の全てのファイルを対象に、最近更新のあったものを新しい順に10個表示させたいとします。このとき10を引数で指定します。 こういうコマンドって作れますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

> 例えば /home/pp ディレクトリ以下の全てのファイルを対象に、最近更新のあったものを新しい順に10個表示させたいとします。このとき10を引数で指定します。 直に打つなら $ ls -t `find /home/pp -type f -print` | head -n 10 ですね。 一つのコマンドにするなら幾つか方法がありますが、例えば csh で alias を使うなら % alias new_file 'ls -t `find /home/pp -type f -print` | head -n \!*' % new_file 10 ってな感じですかね。 ファイル数が多いと、csh のコマンドライン展開の上限に引っかかりますから、スクリプトの方が良いかも。 #! /usr/bin/sh ls -t `find /home/pp -type f -print` | head -n $1 ってな感じ。

masa1214
質問者

お礼

参考になりました。ありがとうございます。

その他の回答 (2)

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.3

ls -lat | head -10

masa1214
質問者

お礼

参考になりました。ありがとうございます。

  • myau
  • ベストアンサー率29% (50/169)
回答No.2

ええと、まず更新時間順ですが、LinuxのGNUかなんかだとして、、 たぶん、 # ls -lc かな。今実機がないので確証はもてませんが。 # man ls とかやるとヘルプでますよ。 で、10個表示・・・てのは、シェル弱いので私はすぐ思いつきませんが、 あの、もしかして、 ファイル数が多くて、ログが流れちゃうのでみられないんでしょうか・・・ だとしたら、 # ls -lc | more とか、パイプで渡せばいいですよ。 そんなの知ってますよということでしたら 失礼しました。 では。 *manマニュアル活用しましょう*

masa1214
質問者

お礼

参考になりました。ありがとうございます。