我有一个/dir1
,结构是:
./aaa.txt
./bbb.jpg
./subdir1/cccc.doc
./subdir1/eeee.txt
./subdir2/dddd.xls
./subdir2/ffff.jpg
我想把
.txt
中的所有.jpg
和/dir1
及其子目录复制到/dir2
。通过使用
cp -r /dir1/* /dir2
,它将所有文件及其结构复制到/dir2
。通过使用
cp -r /dir1/*.jpg /dir2
和cp -r /dir1/*.txt /dir2
,它不会复制子目录中的.jpg
和.txt
文件。通过使用
for FILE in `find`
do
cp -f $FILE /dir1/
done
它可以将dir和子目录中的所有文件复制到目标,但我无法筛选文件类型。
有没有别的方法可以达到我想要的目的?
最佳答案
您可以使用find
获取所需的源文件,然后在cp
的-exec
谓词中使用find
将文件复制到所需的目标。使用gnucp
:
find /dir1/ -type f \( -name '*.txt' -o -name '*.jpg' \) -exec cp -t /dir2/ {} +
波西克斯利:
find /dir1/ -type f \( -name '*.txt' -o -name '*.jpg' \) -exec cp {} /dir2/ \;
关于linux - 如何将目录及其子目录中的所有文件复制到另一个目录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42431682/