入力リストと部分ファイルパスを使用したファイルの検索とコピー

入力リストと部分ファイルパスを使用したファイルの検索とコピー

names.list名前のみを含むファイル名のリストがあります。ファイルはシステム全体のさまざまなサブフォルダに分散されていますが、構造は通常次のとおりです。

uniquename/uniquename2/spades/filtered/filename

定数はspades/filtered

使った次のコマンドディレクトリからファイルを移動するとき

xargs -a file_list.txt cp -t /path/to/dest

使用中にこのスレッドが見つかりました。ワイルドカード/部分ファイル名S

find . -path \*content/docs/file.xml

こんな組み合わせしてみよう

find . -path \*spades/filtered/ | xargs -a names.list cp -t $HOME/destination/

ただし、次のエラーが発生します。

cp: cannot stat `filename': No such file or directory

tldr:入力された名前のリストと部分ファイルパスのみを使用してファイルをコピーしたいと思います。

ベストアンサー1

ファイル名を繰り返し、検索パターンに追加してexecハンドルを使用してコピーします。

for i in $(<names.list)
do
    find . -path \*spades/filtered/"$i" -type f -exec cp -t "$HOME/destination/" {} \;;
done

編集する:Rakesh Sharmaの答えのおかげで、ループの本文を次のように置き換えます。

find . -mindepth 5 -maxdepth 5 -path "*/spades/filtered/$i" -type f -exec cp -t "$HOME/destination/" {} +;

スポンサー。

おすすめ記事