如何使用“ cp”命令排除特定目录?

徘徊边缘 提交于 2020-02-27 08:28:03

我要复制目录中的所有文件,但特定子目录中的某些文件除外。 我注意到'cp'命令没有--exclude选项。 那么,我该如何实现呢?


#1楼

扩展对mvds的评论 ,这对我有用

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
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!