2017-04-25 11 views
0

showで始まり、特定の月に作成されたファイルを検索したいとします。私は、次の2つの条件に基づいてネストされた検索

for i in `find /home/data -type d -name "$MONTH"`; 
    do find $i -type f -name "show*" -printf "%h\n"|uniq >tempfile1; 
done; 

を試してみましたが、私はこのエラーを取得:

-bash: /home/data/testdata/2017/Apr/25: Is a directory

私はそれを解決することができますか?

+0

フォーマットのヘルプをお読みください。 –

+0

Redhat 6.4でこのエラーが発生しません。それは "期待どおりに"動作し、それらの中に "show"のあるすべてのディレクトリをリストしています...あなたのシステムでもう少し具体的になりましょう –

+0

今はうまくいっていますが、別の問題があります...リストアップされた最後のディレクトリがtempfile1私は次の構文でそれをリダイレクトする代わりに出力を追加しなければなりません... 'find/home/data-type d -name"のiのために$ MONTH "'; $ i -type f -name "show *" -printf "%h \ n" | uniq >> tempfile1; 完了。 –

答えて

0

あなたはShellCheckを通じてその小さなビットを実行する場合、いくつかの問題が明らかになる:

  1. の代わりにあなたがグロブ防ぐために引用符で$iを囲む必要がありfind使用-exec

  2. の出力をループし、単語の分割。それがあなたの問題の原因かもしれません。