5月 11

排除指定文件的递归拷贝

有时候我们有这种需要:递归复制整个目录(包含子目录和文件)同时排除掉指定类型的文件。此时,第一个想到的工具就是cp,但是cp没有排除指定文件的参数选项,所以需要配合find或者grep才能实现此功能。具体的使用方法,请自行搜索。我测试了其中一个方法,发现无法保持目录结构。最后只得放弃cp。

放弃cp不等于没有其他思路。粗略来说,“复制”可以算作“同步”的同义词,所以可以使用同步工具(或命令)来实现上述要求,如rsync。测试如下:

第一步:建立测试所用的目录、文件等。

1
2
3
$mkdir -p ./raw/aaa/bbb ./raw/ccc ./copy
$touch ./raw/aaa/1.r ./raw/aaa/1.txt ./raw/aaa/1.pl
$touch ./raw/aaa/bbb/2.tex ./raw/aaa/bbb/2.pl ./raw/aaa/bbb/2.r

Continue reading