如何将目录(及其子目录)中的所有 pdf 文件递归复制到单个输出目录中?

Lou*_*ult 22 linux command-line

我有一个包含大量 PDF 文件的目录,其中一些位于子目录中(可以扩展多层深度)。我想将所有匹配的文件移动*.pdf到一个名为papers.

我怎样才能做到这一点?

Red*_*ick 31

  find /bunchopdfs -name "*.pdf" -exec mv {} /papers \;    
Run Code Online (Sandbox Code Playgroud)

这是我做的一个测试

$ ls -R
.:
a  aaa bbb.pdf  pdfs

./a:
foo.pdf

./pdfs:
Run Code Online (Sandbox Code Playgroud)

注意文件“aaa bbb.pdf”。

$ find . -name "*pdf" -exec mv {} pdfs \;
$ ls -R
.:
a  pdfs

./a:

./pdfs:
aaa bbb.pdf  foo.pdf
Run Code Online (Sandbox Code Playgroud)


cho*_*oba 21

如果您bash在最近的版本中使用,您可以从该globstar选项中获益:

shopt -s globstar
mv **/*.pdf papers/
Run Code Online (Sandbox Code Playgroud)