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

时间:2009-12-20 15:55:55

标签: bash filesystems terminal directory

我有一个Wordpress上传文件夹,使用子文件夹构建数月。

wolfr2:uploads wolfr$ tree .
.
|-- 2007
|   |-- 08
|   |   |-- beautifulkatamari.jpg
|   |   |-- beautifulkatamari.thumbnail.jpg
|   |   |-- beetle.jpg
|   |   |-- beetle.thumbnail.jpg

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

cp -R ./*.jpg .

3 个答案:

答案 0 :(得分:35)

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

tar cvfp `find . -name "*.jpg"` | (cd <newfolder>; tar xfp -)

要复制而不保留目录结构:

cp `find . -name "*.jpg"` <newfolder>

答案 1 :(得分:31)

脱离我的头顶:

find . -type f -name \*.jpg -exec cp \{\} $TARGETFOLDER \;

如果这不起作用,请发表评论,我会再试一次,但find绝对是可行的方法。

答案 2 :(得分:0)

以上命令均不适用于macOS 10.15。这是可行的:

find . -name "*.jpg" -exec cp /{/} [target folder path] \;