Linux下的复制、删除与移动命令:cp , rm , mv

Linux 小智 1034℃ 0评论

前言

Linux中,复制、删除与移动都是些基础而又常用的命令,简单的说,要复制文件,就使用cp(copy)这个命令即可,当然除了单纯的复制之外,还可以创建连接文件(就是快捷方式),对比两个文件的新旧而予以更新,以及复制整个目录。至于移动文件与目录,则可以使用mv(move),这个命令也可以用来重命名(rename)。至于删除则使用rm(remove)命令。

cp(复制文件或目录)

#cp [-adfilnprsu] 源文件(source) 目标文件(destination)
#cp [options] source1 source2 source3 ... directory
参数:
-a : 复制所有的特性
-d : 若源文件为连接文件(link file),则复制连接文件而非文件本身
-f : 为强制(force)的意思,若目录文件已存在并且不能开启,则删除后再尝试一次
-i : 若目标文件已存在,则覆盖时先询问
-l : 创建硬链接(hard link)文件,而非复制文件本身
-n : 不覆盖已经存在的文件
-p : 连同文件的属性一起复制,而非使用默认属性(备份常用)
-r : 递归复制,用于目录的复制
-s : 复制成为符号链接文件(symbolic link),即“快捷方式”文件
-u : 若目标文件比源文件旧,则更新目标文件
最后要注意,如果源文件有多个,则最后一个目标文件一定要是“目录”才可以

举例
1. 使用root用户,把 /test/movie/xiaoli.avi 文件复制到 /test/mp4/ 下

[root@VM_112_250_centos test]# cd /test/mp4/   ==>切换到mp4目录
[root@VM_112_250_centos mp4]# cp /test/movie/xiaoli.avi .   ==>复制到当前目录
[root@VM_112_250_centos mp4]# ls -l /test/movie/ .  ==>查看文件信息
.:
total 0
-rw-r--r-- 1 root root 0 Dec 19 23:57 xiaoli.avi

/test/movie/:
total 0
-rw-rw-r-- 1 lilei lilei 0 Dec 19 23:57 xiaoli.avi

如果注意就会看到,文件的权限信息发生了变化
那如果想要把所有的文件属性都复制过来,则可以添加-a
说明:
在默认条件中,cp的源文件和目的文件的文件权限是不同的,目的文件的所有者通常会是命令操作者本身。
备份文件或复制特殊权限的文件时应特别注意,应加上-a或者-p等可以完整复制文件权限的参数才行。

[root@VM_112_250_centos mp4]# cp -a /test/movie/xiaoli.avi .   ==>复制到当前目录
[root@VM_112_250_centos mp4]# ls -l /test/movie/ .  ==>查看文件信息
.:
total 0
-rw-rw-r-- 1 lilei lilei 0 Dec 19 23:57 xiaoli.avi

/test/movie/:
total 0
-rw-rw-r-- 1 lilei lilei 0 Dec 19 23:57 xiaoli.avi

2. 把 /test/movie/ 目录复制到 /test/ 下

[root@VM_112_250_centos mp4]# cp /test/movie/ /test/mp4  ==>如果是目录不能直接复制
cp: omitting directory '/test/movie/'
[root@VM_112_250_centos mp4]# cp -r /test/movie/ /test/mp4

再次强调,虽然 cp -r 可以复制整个目录,但是文件与目录的权限可能会被改变
所以也可以利用 cp -a 来执行复制目录的操作,尤其是在备份的时候

[root@VM_112_250_centos mp4]# cp -a /test/movie/ /test/mp4/

rm(删除文件或目录)

# rm [-fir] 文件或目录
参数:
-f : 就是force的意思,忽略不存在的文件,不会出现警告信息
-i : 互动模式,在删除前会询问用户是否操作
-r : 递归删除。最常用在目录的删除,不过这是非常危险的参数。

举例:
1. 把 /test/movie/xiaoli.avi 文件删除

[root@VM_112_250_centos ~]# cd /test/movie/
[root@VM_112_250_centos movie]# rm -i xiaoli.avi 
rm: remove regular empty file 'xiaoli.avi'? y
如果加上 -i 参数就会询问你是否删除,避免误操作。

说明:
通常在linux系统下,为了避免误操作,删除时都默认添加了 -i 参数
使用 rm -r 这个命令,应特别注意,因为系统不会询问你是否删除,要避免一不小心删除服务器所有文件的悲剧啊( rm -rf / )

mv(移动文件与目录,或重命名)

# mv [-fiu] source destination
# mv [options] source1 source2 source3 ... directory
参数:
-f : force强制的意思,如果目录文件已存在,不会询问而直接覆盖
-i : 若目标文件已存在,则会询问是否覆盖
-u : 若目标文件已存在,切source比较新,才会更新

举例:
1. 把 /test/mp4/xiaoli.avi 移动至 /test 目录并重命名为 lili.avi

[root@VM_112_250_centos ~]# cd /test/mp4/
[root@VM_112_250_centos mp4]# mv xiaoli.avi /test/lili.avi

本文固定链接:心知博客 » Linux下的复制、删除与移动命令:cp , rm , mv
本站内容除特别标注外均为原创,欢迎转载,但请保留出处!

喜欢 (1)
发表我的评论
取消评论
表情

请填写您的昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址