web-dev-qa-db-ja.com

ドキュメントファイルを見つけて別のディレクトリにコピーする

これは少し基本的な質問ですが、ディレクトリで見つけたすべての.docファイルをコピーして、別のディレクトリにコピーしようとしています。

私は各コマンドを知っています:

find -name '*.doc' .

そして:

cp filename location 

2つのコマンドを組み合わせるにはどうすればよいですか?

6
rararoland
find/path/to/search -name "* .doc" -exec cp {}/path/to/copy/to \;

.docファイルが多数ある場合、これは 文字制限 に当たらないようにするための最良のオプションです。

6
John T

別の可能性:

find /path/to/search -name \*.doc -print0 | xargs -0 cp --target-directory=/destination/path

これにより、find -execと比較して、copyコマンドの呼び出し回数が削減されます(ファイルの数が非常に多い場合は、著しく高速になるはずです)。

4
Slartibartfast

ソラリスでは、以下を使用できます。

find /path/to/search -name "*.doc" -exec cp {} /destination/directory \;
1
Gav R

ユーザーkellyが所有するファイルを見つけて、カタログにコピーします:/opt/dir

# cd (into /path to copy files) e.g. cd /opt/
# mkdir dir (where you want to copy the files)
# find / -user kelly -exec cp -rfp {} /opt/dir/ \;
1
kelly

「.doc」から「.jpg」または他のバイナリイメージファイルへの質問を一般化するには、 tagimrecoll などの追加のオープンソースツールが必要になります。

tagim は、キーワード(または評価)を使用して画像にタグを付け、次に recoll を使用して画像を並べ替え/フィルタリングし、cpを使用してリストをxargsに流し込みます:

recollq 'ofJoe ext:jpg' | xargs cp --target-directory=~/Photos/ofJoe
0
hobs