又一个周的时间过去了,觉得时间过的好快的呢,大概是因为沉迷于学习吧(害羞脸),在这一周里学习了不少东西呢,下面就来总结一下吧
(1) cp 复制
如果只是单纯的敲cp复制文件而不加任何选项的时候,如果目的目录文件已经存在,就会直接覆盖,而不会出现任何提示信息,而当在实际操作时,就算不加 –i选项,也会提示要不要覆盖文件
原因是在系统中有定义好的别名,就算只输入cp,也相当于加了-i选项
下面是关于cp复制时一些选项的解释
-i 覆盖前提示
-n 不覆盖
-r -R 递归 (不管是cp 还是ls.在执行命令的时只影响当前目录,而不会对当前目录的子目录产生影响,)
-d 复制软链接属性 (软连接其实就是链接一个路径)
-p
= –perserv=mode,owner,timestamp
-a 包含-dr –perserv=all
-f 当覆盖时,如目的文件的缺少写权限时,(而对文件所在目录有创建和删除文件的权限时)强制删除目的文件,并新建再填充内容。当有-n时,无效。当你对一个文件没有写权限时,但你对该文件所在目录有创建和删除文件的权限,就可以强制删除该文件,并新建一个文件
当执行覆盖操作时,对文件inode号产生的影响:
在执行cp命令时,其实就是对文件的写入,如果目的文件不存在,则会在给目的文件分配一个新的inode号。
如果目的文件已经存在,则只会将文件的数据覆盖,不会再分配inode号
(2)mv 移动
从上图可以看出,系统定义的也有mv 的别名,在覆盖文件的时候,也会弹出提示信息
-f 覆盖时不提示,抵消-i的作用
当执行mv操作时,文件的inode号的变化情况:
不跨分区时,不会对文件的inode号产生影响,如果移动去文件名发生改变,则相当于间接完成了改名的操作
当跨分区移动是,相当于同时执行了cp和rm操作,将文件原来所在分区的inode号释放,在目的文件所在分区分配一个新的inode号,然后将数据部分复制过去。
(3) rm 删除
-i 覆盖前提示(如前所示,就不赘述了)
-f 不提示,强制覆盖,抵消-i的作用
-r 递归 (可以递归删除目的目录下的所有子目录)
如果删除某个目录的时候不加-f选项,如果该目录下还有子目录,将无法删除
执行rm操作时对文件inode号的影响:
删除一个文件的本质就是减少一个文件的硬链接数,当文件的硬链接数减少到0的时候,就会释放inode号
删除一个硬链接时:
继续删除,当把最后一个删除时,硬链接数就会变为0,此时就会释放inode号,
此时如果新建一个文件,刚释放的inode号就会被重新占用
好啦,由于能力和精力的限制,就写到这里了,欢迎批评指正
原创文章,作者:Melissa,如若转载,请注明出处:http://www.178linux.com/82162