2013-02-23 11 views
17

nlbで始まるフォルダに最新のディレクトリ名を取得する必要があります。最新のファイルをディレクトリに取得

#!/bin/sh 

cd /home/ashot/checkout 
dirname=`ls -t nlb* | head -1` 
echo $dirname 

フォルダは、NLBを開始する名前を持つ多くのフォルダが含まれている場合、このスクリプトは正常に動作しますが、名前開始NLBを持つ1つのフォルダのみが存在する場合に は、このスクリプトはそのフォルダ内の最新のファイル名を出力します。どのように最新のディレクトリ名を取得するためにそれを変更するには?

答えて

11

-d引数をlsに追加します。そうすれば、ディレクトリの中を見るのではなく、その言葉だけが常に印刷されます。

6
#!/bin/sh 

cd /home/ashot/checkout 
dirname=$(ls -dt nlb*/ | head -1) 
echo $dirname 

他の答えは、それを指摘するように、あなたは内部のディレクトリを見ていないし-dを必要としています。

追加のヒントは、パターンに/を追加しています。あなたが最新のディレクトリを取得するために指定した質問の中で。この末尾に/のディレクトリのみが一致します。そうでない場合は、最新のファイルが存在し、スクリプトを破るパターンnlb*と一致します。

また、`...`$(...)に変更しました。これは現代的なおすすめの文章形式です。

関連する問題