4

私は使っている

ls -ltr /homedir/mydirectory/work/ |tail -n 1|cut -d ' ' -f 10

しかし、これは望ましい結果を得るための非常に大雑把な方法であり、信頼性もありません。実行するだけで得られる出力

ls -ltr /homedir/mydirectory/work/ |tail -n 1

-rw-r--r-- 1 user pusers 1764 Apr  1 12:06 firstfile.xml

ここでファイル名を取得します。しかし、上記のコマンドを実行したときの出力が次のような場合

-rw-r--r-- 100 user pusers 1764 Apr  1 12:06 firstfile.xml

最初のコマンドは失敗します! そして当然のことながら、現在有効ではない10番目の文字から結果を切り取っています。

では、どうやって絞り込むか。

4

3 に答える 3

9

必要がないのに、なぜ-lフラグを使用するのlsですか? ls統一されていない出力を「解析」しようとするのではなく、それ以上の情報が必要ない場合は、単純にファイル名を出力してください(貧弱なテキスト処理ユーティリティをレイプします...)。

LAST_MODIFIED_FILE=`ls -tr | tail -n 1`
于 2013-04-02T06:04:33.677 に答える