0

bash スクリプトを使用して、ディレクトリ内の最新のログファイル (.log 拡張子) を検索したいと考えています。

最初は私の簡単な試みはうまくいきました

filename=`ls -t -c1 | head -1`

しかし、ログファイル以外のファイルが見つかる可能性があることを認めると、ワイルドカード展開のためにこれは機能しません

filename=`ls -t -c1 *.log | head -1`

したがって、ls コマンドを配列またはファイルに読み込み、そこから処理する必要があると思います。

4

1 に答える 1

1

それはうまくいくようです....

 Kaizen ~/so_test $ ls -lt -c1 z*
-rw-r--r-- 1 Nitin None 318 Jun  5 21:59 ztestfile1
-rwxrwxrwx 1 Nitin None 398 Jun  5 21:41 zawk1.sh

または、 find .... で手を試すこともできます。

 Kaizen ~/so_test $ find . -mtime 0 -a -mtime -1 -iname "z*" | xargs ls -ltr | sort -k9 -r
 -rw-r--r-- 1 Nitin None 318 Jun  5 21:59 ./ztestfile1
 -rwxrwxrwx 1 Nitin None 398 Jun  5 21:41 ./zawk1.sh

ただし、これには、正確なニーズに合わせて少し小細工が必要です。

于 2013-06-06T02:25:16.863 に答える