tempという名前のすべてのファイルを探す

tempという名前のすべてのファイルを探す

temp名前は。すべてのファイルを見つける必要がありますか?find . -name "temp"

では、エラーメッセージが表示されないことを確認する必要がありますか2>/dev/null?前のコマンドの最後に追加できますか?

答え1

注文する

find . -name temp

すべて見つける名前それはtemp。これには、通常のファイル、ディレクトリ、ソケット、シンボリックリンクなどのさまざまなファイルが含まれます。

ただ探したいなら定期的なファイルを作成したら、次のように-type fテストします。

find . -name temp -type f

エラーを隠すには、次のように発生します(アクセスできないディレクトリにアクセスしようとすると)。

find . -name temp -type f 2>/dev/null

つまり、標準エラーストリームを(すべてのエラー削除)findにリダイレクトします。/dev/null

エラーを避けたい場合、つまり隠れるエラーが発生した場合は、アクセス権のないディレクトリに入力しないように注意してください。 GNUの場合はfind便利です。

find . -type d ! \( -readable -executable \) -prune -o -name temp -type f -print

このテストはすべてのディレクトリに適用され、GNUの場合、-type d現在のパス名が現在のユーザーが実行または読めないことを参照している場合は、find否定テストが適用されます。-executable -readableディレクトリはアクセシビリティ実行可能でディレクトリの内容を一覧表示できる(読み取り可能な場合)、検索ツリーでディレクトリを「クリーンアップ」します-prune。つまり、find入力しないでください。

これは-o論理OR演算です。使用しない場合、-oデフォルト-aは「AND」です。指定されたテストとタスクは左から右に評価されます。

最後に、-printすべてのテストに合格したすべてのパス名を印刷します。

あなたはしたいですか?する見つかったファイルに対していくつかの操作を実行してから、それを実行してこれを実行しますfind。たとえば、それを削除するには、-deleteコマンドの最後に追加または-printに変更します-delete。より一般的なタスクを実行するには、そのタスクを繰り返す必要があります。あなたは以下を使ってこれを行います。

find . -type d ! \( -readable -executable \) -prune -o -name temp -type f \
    -exec sh -c '
        for pathname do
            # code that uses "$pathname" goes here
        done' sh {} +

また、見ることができます

関連情報