find /bunchopdfs -name "*.pdf" -exec mv {} /papers \;
これが私が行ったテストです
$ ls -R
.:
a aaa bbb.pdf pdfs
./a:
foo.pdf
./pdfs:
ファイル「aaa bbb.pdf」に注目してください。
$ find . -name "*pdf" -exec mv {} pdfs \;
$ ls -R
.:
a pdfs
./a:
./pdfs:
aaa bbb.pdf foo.pdf
bash
を使用する場合 最近のバージョンでは、globstar
から利益を得ることができます オプション:
shopt -s globstar
mv **/*.pdf papers/
find -print0 /directory/with/pdfs -iname "*.pdf" | xargs -0 mv -t /papers
(別の回答に似ていますが、私は pipe/xargs/mv を好みます...より直感的です)
参考までに、複数のディレクトリと複数の pdf ファイルで上記の 1 行のスクリプトを正常に実行しました。