Linux拷贝文件夹

参考博文:

linux下cp目录时排除一个或者多个目录的方法

1. cp 

cp -r 和-R功能上是等价的。不加-r或者-R的时候,只拷贝文件,不拷贝文件夹;加上后则会拷贝文件夹——包括下一级的子文件夹,以及子文件夹中的子文件夹,余此类推。

另外rm的-R -r功能同上,ls的-R功能同上,-r的功能是结果反向排列。

cp目录时排除一个或者多个目录

/home目录里面有data目录,data目录里面有a、b、c、d、e五个目录,现在要把data目录里面除过e目录之外的所有目录拷贝到/bak目录中

cp -R `find /home/data -type d  -path /home/data/e  -prune -o -print | sed 1d ` /bak

注:使用cp命令复制的时候,只能排除一个目录不被复制,如果想排除两个或者多个目录的话,就需要使用rsync命令来实现

 

2. rsync

如果要排除/home/data目录下面的a、b、c、三个目录,同时拷贝其它所有目录,执行以下命令

sudo apt-get install rsync   #安装rsync
rsync -av --exclude data/a  --exclude data/b  --exclude data/c  data   /bak

注意:--exclude后面的路径不能为绝对路径,必须为相对路径才可以,否则出错

 

posted @ 2017-01-20 18:40  welcome_home  阅读(706)  评论(0编辑  收藏  举报