Linux cp命令如何拷贝整个目录下所有文件

Linux cp命令如何拷贝整个目录下所有文件,第1张

如何在Linux下拷贝一个目录呢?这好像是再简单不过的问题了。

比如要把/home/usera拷贝到/mnt/temp,首先想到的就是

cp -R /home/usera/* /mnt/temp

但是这样有一个问题,/home/usera下的隐藏文件都不会被拷贝,子目录下的隐藏文件倒是会的。

那如何才是正确的方法呢?有人说用-a选项,有人说用find加管道。

其实没这么复杂,Google了之后,学了一招。原来只有用“.”当前目录代替“*”就好了。

cp -R /home/usera/. /mnt/temp

for file in/home/alex/Pictures/DCIM/2*/*.jpg do    #截取图片的文件名 如: "xxoo.jpg"    i=$(echo ${file}|awk -F'/' '{print $NF}')    #判断目标目录中是否存在相同的文件    if ls /home/alex/extpic | grep -q -w ${i}  then       #若存在,mv 将存在的文件改名,改名后将源目录中的文件复制过去       mv /home/alex/extpic/${i}  /home/alex/extpic/bak_${i}       cp ${file} /home/alex/extpic    fi    #不存在相同的文件 就直接copy    cp ${file}  /home/alex/extpic done #===================================================================== #至于第二个cp,要不要放在if内(如下);放或者不放,------都行,看个人习惯 if '存在' then   mv ... ... #存在则改名   cp ... ... #改名后复制文件 else    cp ... ... #不存在 则 直接复制 f


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11464519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存