我要复制目录中的所有文件,但特定子目录中的某些文件除外。 我注意到'cp'命令没有--exclude选项。 那么,我该如何实现呢?
#1楼
cd dotfiles
tar -c --exclude .git --exclude README . | tar -x -C ~/dotfiles2
#2楼
cp -r `ls -A | grep -v "c"` $HOME/
#3楼
rsync快速简便:
rsync -av --progress sourcefolder /destinationfolder --exclude thefoldertoexclude
您可以使用--exclude
多次。
rsync -av --progress sourcefolder /destinationfolder --exclude thefoldertoexclude --exclude anotherfoldertoexclude
请注意,Dir thefoldertoexclude
后--exclude
选项是相对于sourcefolder
,即sourcefolder/thefoldertoexclude
。
另外,您可以添加-n
以进行空运行,以查看执行实际操作之前将要复制的内容,如果一切正常,请从命令行中删除-n
。
#4楼
同步
rsync -r --verbose --exclude 'exclude_pattern' ./* /to/where/
然后先用-n选项尝试一下,看看将要复制什么
#5楼
只需将其暂时移动到隐藏目录中即可(如果需要,可以在之后将其重命名)。
mkdir .hiddendir
cp * .hiddendir -R
mv .hiddendir realdirname
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3167519