特定の名前に一致するディレクトリを探し、検索結果を含む親ディレクトリから繰り返しコピーします。

特定の名前に一致するディレクトリを探し、検索結果を含む親ディレクトリから繰り返しコピーします。

m/n/o/p/q/r/s/t ディレクトリ構造があります。

名前 "r" と一致するディレクトリを探し、検索結果の親ディレクトリから内容を再帰的にコピーしたいと思います (例: この例では、 "q/r/s/t" - 'cp - rq/r を使用して取得します。できる仕事)。 <dir_location> ')を別の場所に移動します。

それは次のとおりです。

find m/n/o/p -type d -name "r" -exec cp -r "../{}" /<folder_to_copy_into> \;

-printf%hと-maxlengthで実験を試しましたが、構文が正しいかどうかはわかりません。私が望む結果を得るために別の発見をすべきかどうかはわかりません。 (目標は、検索結果のある親ディレクトリから別のディレクトリの場所に繰り返しコピーすることです。)

"r"というディレクトリを見つけることができる限り、rの親ディレクトリから新しいディレクトリの場所にすべてを再帰的にコピーしたいと思います。 (たとえば、m/n/o/p/q/r/s/t がある場合は、「q/r/s/t」を新しいディレクトリの場所に繰り返しコピーしたいと思います。)

ベストアンサー1

Bashコマンド文字列を次のように置き換えることができます-exec

 .... -exec bash -c 'cp -r $(dirname $0) /target/' '{}' \;

@KamilMaciorowskiのコメントを考えてみましょう。抽出したい内容が少し不明です。したがって、d1このようなディレクトリ構造から検索すると

└ a
  └ b
    ├ c1
    │ └ d1
    │ └ d2
    │ └ d3
    ├ c2
    └ c3

上記の内容c1は。d2d3d1

おすすめ記事