linux cp 文件夹合并,Linux下如何合并目录 ? Ren的Linux大杂坛

今天晚上给本博客升级WordPress到3.0,为了方便就直接将tar包放到服务器上去了。然后习惯的用tar指令解压后,生成了一个wordpress目录,将配置文件重新配置好,然后就打算将这个目录与原来的目录合并。习惯性的输入了下面这条指令:

#cp -Rf wordpress my_blog

指令成功执行了,然后赶紧去看my_blog目录下的文件,发现没有更新,而是多了个my_blog子目录!晕,cp直接将源目录拷贝到目标目录下当子目录了!看来得赶紧想个办法解决掉这个问题,否则就得手动一个一个传文件上去覆盖老目录了,多慢啊!

赶紧上网找解决办法,很快就被我命中了方法。使用下面的指令来将/aaa/bbb目录复制到当前目录的bbb目录下合并。-u参数表示只更新较新的文件和不存在的文件。

#cp -R -u /aaa/bbb .

不过要实现这点,必须将原来的目录改名成要合并的目录,然后放到另外一个目录下做“跳板”才行。简单的说,如果想要更新当前目录下的my_blog目录,我得放到如./tmp/my_blog目录下,然后再使用指令“cp -R -u ./tmp/my_blog .”的方式来更新。虽然麻烦点,但是暂时只找到这个方法了,说干就干。依次使用下面的指令操作(中文为命令注释,实际操作的时候不需要输入)

#mkdir tmp  在当前目录下创建tmp目录#cp -Rf wordpress tmp/将当前目录下的wordpress目录移动到tmp目录下#cd tmp/ 进入tmp目录#mv wordpress my_blog 将tmp目录下的wordpress目录重命名位my_blog

#cd .. 返回到上级目录

#\cp -Rf tmp/my_blog . 将tmp目录下的my_blog与当前目录下的同名目录合并

大家可能会发现,最后一个命令没有使用cp -R -u,为什么呢?舍弃掉-u是为了确保所有文件都被覆盖掉。加上f参数是为了避免提示是否要覆盖文件,文件少还可以手动敲y后回车,文件多了要命啊!但是为什么cp之前还有一个“\”符号呢?很简单,cp命令使用-f参数后,还是会提示是否要覆盖文件,因为cp命令的alias是cp -i,而恰恰-i参数是表明有交互提示,于是直接输入cp -Rf是不能消除提示的。在cp命令前加上“\”,或者使用cp命令的绝对地址就可以保证不出现提示了。

最后,我们需要将原来的目录删除掉,由于新建的tmp里只有原来的目录,所以我们把整个tmp目录删除即可:

#rm -rf tmp

这样就大功告成了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值