web-dev-qa-db-ja.com

Bashを使用してファイルを見つけてコピーする

誰もがbashでファイルを見つけてコピーする別の方法を持っています:

find . -ctime -15 | awk '{print "cp " $1 " ../otherfolder/"}' | sh

私はこの方法が好きです。なぜなら、コマンドを(任意のコマンドで)作成してから実行するため、柔軟性があるからです。

コマンドをファイルのリストに合理化する他の方法はありますか?

ありがとう

33
Wadih M.

find-execオプション:

find . -ctime 15 -exec cp {} ../otherfolder \;

いつものように、最良の結果を得るにはマンページを参照してください。

76
asveikau

私は通常これを使用します:

find . -ctime -15 -exec cp {} ../otherfolder/ \;
8
tangens

cpがGNUの場合:

find . -ctime 15 -print0 | xargs -0 cp --target-directory=../otherfolder
8
Idelic

xargsでできます:

$ find . -ctime 15 -print0 | xargs -0 -I{} cp {} ../otherfolder

シェルスクリプトのgrepユーティリティ も参照してください。

5

これをコピーや他の多くのものに使用します。

for f in $(find /apps -type f -name 'foo'); do cp ${f} ${f}.bak; cmd2; cmd3; done;
1
hardihood07