linux的cp,rm,mv

来源:互联网 发布:个人博客用什么域名好 编辑:程序博客网 时间:2024/04/25 00:20

要是linux是单机的话,这些命令都很简单,奈何多用户下的cp要考虑用户之间的权限问题。
暂且假设是当前用户的操作,如果要用其他用户就切换其他用户来操作,这样先保证cp等命令是同个用户权限下的操作。

cp

复制copy的意思。
就是把当前的目录或文件复制到指定的位置

命令:cp -参数(可选) 当前目录或文件 目标位置

如果是目录就加上参数 -r,表示递归目录中的所有内容
如果想要保持文件权限不变,加上-a,表示备份操作,也就是什么都不变

有意思的是:
比如 cp -r /usr/dir /home/ddd
你猜dir这个目录复制后的路径是()
A、 /home/ddd/dir
B、 /home/dir
答案:
1、如果/home中已经存在ddd,并且ddd是文件,复制失败,提示不能覆盖
2、如果/home中已经存在ddd,并且ddd是目录,最终目标位置是:/home/ddd/dir
(其实不管复制过来的是目录还是文件,如果目标路径是目录,那么就把复制的内容放进这个目录中,目录中已存在同名文件会提示)
3、如果/home中还没存在ddd,最终目标位置是:/home/ddd,ddd就是复制的dir目录
(其实不管复制过来的是目录还是文件,只要目标路径最后一级名称是不存在的,就是相当于把复制的文件或目录重命名为这个名称)


rm

移除remove的意思。
\rm 文件名 (这样可以不带默认参数,因为命令rm是写在bin中的rm文件中,会配置有alias默认参数)

rm -r 目录

rm -f 文件或者目录(强制不询问删除,谨慎操作)

rm -rf 目录(删除整个文件夹)

mv

move移动。相当于剪切。

如果是同级目录下的,则为重命名。
重命名也可以用rename
用法:rename [options] expression replacement file
比如: rename .txt .log *.txt(把txt文件改为log文件)

有意思的是:
题目:
1、rm 目录1 目录2,
2、rm 文件 目录1,
3、rm 目录1 文件 目录2;
上题的操作结果是怎样的?
答案:
1、如果目录2不存在,则重命名为目录2;如果目录2存在,则移动到目录2里头
2、移动
(总结:如果最后的参数是目录,则移动到目录里面,如果是文件,只能被文件覆盖)
3、只要最后一个是目录,前面的都移动进来,否则不允许三个以上参数