将嵌套文件夹内容递归复制到一个文件夹(终端)

Wol*_*lfr 23 filesystems directory bash terminal

我有一个Wordpress上传文件夹,使用子文件夹构建了几个月.

wolfr2:uploads wolfr$ tree .
.
|-- 2007
|   |-- 08
|   |   |-- beautifulkatamari.jpg
|   |   |-- beautifulkatamari.thumbnail.jpg
|   |   |-- beetle.jpg
|   |   |-- beetle.thumbnail.jpg
Run Code Online (Sandbox Code Playgroud)

如何使用终端将所有图像递归复制到另一个文件夹?我似乎不能像通配符文件名那样使用通配符文件夹.(例如*.jpg或*)(我在Mac OSX上)

cp -R ./*.jpg .
Run Code Online (Sandbox Code Playgroud)

Ric*_*ton 36

这会将所有*.jpg文件从当前文件夹复制到新文件夹并保留目录结构.

tar cvfp `find . -name "*.jpg"` | (cd <newfolder>; tar xfp -)
Run Code Online (Sandbox Code Playgroud)

要在不保留目录结构的情况下进行复制:

cp `find . -name "*.jpg"` <newfolder>
Run Code Online (Sandbox Code Playgroud)

  • 这似乎不适用于名称中包含空格的文件 (6认同)

Luc*_*nes 31

脱离我的头顶:

find . -type f -name \*.jpg -exec cp \{\} $TARGETFOLDER \;
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,请评论,我会再试一次,但find绝对是要走的路.

  • 这是正确答案,因为它适用于名称中包含空格的文件/文件夹. (2认同)