Unix で 2 つのパスから 1 つのファイルを取得する方法は?

Unix で 2 つのパスから 1 つのファイルを取得する方法は?

2 つの異なるパスから 1 つのファイルを取得しようとしています。以下のコマンドを使用しましたが、実行は正常に行われているようですが、出力がありません。

find . \( -path "/usr/local" -o -path "/user/local/archive" \) -name "xyz.csv"

これについて助けていただけませんか?

答え1

出力が得られない理由:

  • ドットは.検索のルートなので、ルートディレクトリにいない場合は/usr/local検索ツリーに表示されません。
  • オプション-pathは、検索するオブジェクトを含むパス全体に一致する必要があります。したがって、 を指定した場合、-nameこの名前も の一部である必要があります-path(または、*末尾に でグロブする必要があります)。

しかし、find検索パスとして複数の引数を取るので、@Kamarajがコメントに書いたように検索することができます。あなたの場合、これは必要ではありません。findはサブディレクトリも検索するのでfind /usr/local -type f -name xyz.csv/usr/local/archiv/xyz.csv

関連情報