时间:2017.12.03
作者:李强
参考:man,info,magedu讲义
声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。
cp
通常我们在windows下复制,在同一目录下复制,他会自动生成副本
而且linux下,同一目录下是不允许复制的。
而如果把一个文件复制到另外一个目录下,但是另外一个目录下有相同的文件
windows下会让你选择是否替换,或者比较2个文件的大小日期等,让你选择保留选择那一个,如果你都选,那么其中一个会加个后缀
而在linux下,
比如当前
f1 有个目录a cp f1 a,就把文件复制到a里了,如果再执行cp f1 a,它会提醒你是否覆盖,window下是是否替换,但是linux是不会帮你去判断2个文件大小什么的,cp -b f1 a 如果这个时候a下有f1,那么a的f1会变成f1.~,然后新的f1复制进去。如果想自己制定后缀可以使用cp -S ".bak" f1 a ,如果自己添加,可以用
--backup=t 等,t是~1~,这样子的后缀。
有个问题是不管-b --backup 还是 -S ,当目标文件和源文件不一致的时候,是不会添加后缀的。所以想用cp实现备份但是添加后缀的功能怎么实现呢?
而且他们的操作是把目标文件的文件先加后缀,然后把源文件复制过去。
当然这里cp只看名字。这里f1.t就是我修改的f1,然后cp把它加了.t后缀,然后把源f1复制到a目录下。
a目录总是存在2个文件,不能实现备份的时候添加后缀并不要源文件的作用。因为这些选项都是在有目标文件的时候才会去添加后缀的。
mv
install
都是如此的操作。