每日三个linux常见命令系列-[rm,mv,cp]

1. rm

1.1 命令格式

rm[选项] 文件或目录

1.2 命令描述

删除目录或者文件

1.3 常用选项

-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。

1.4 实例

[root@test test]# rm test4      # rm命令只能删除一个普通文件,不能是一个目录(并且删除之前会提示)
rm: 无法删除"test4": 是一个目录
[root@test test]# rm -r test4 
rm:是否进入目录"test4"? 
[root@test test]# rm -r test4  # rm -r 可以删除一个目录,删除时会提示
rm:是否进入目录"test4"? y
rm:是否删除目录 "test4/test4_2"?y
rm:是否删除目录 "test4/test4_3"?y
rm:是否删除目录 "test4/test4_4"?y
rm:是否删除目录 "test4/test4_5"?y
rm:是否删除普通空文件 "test4/test4_file1"?y
rm:是否删除目录 "test4/test4_6"?y
rm:是否删除目录 "test4"?y
[root@test test]# mkdir -p test4/{test4_1,test4_2,test4_3,test4_4}
[root@test test]# ls test4
test4_1  test4_2  test4_3  test4_4
[root@test test]# rm -f test4 
rm: 无法删除"test4": 是一个目录
[root@test test]# rm -rf test4  # 强制删除,没有提示(生产上少使用)

2. mv

2.1 命令格式

mv 【选项参数】 源文件或目录 目标文件或目录

2.2 命令描述

移动文件或者目录

2.3 常用选项

-b 若需覆盖文件,则在覆盖文件前先进行备份
-f 强制覆盖,若目标文件已存在同名文件,使用该参数时则直接覆盖而不询问
-u 若目标文件已存在需移动的同名文件,且源文件比较新,才会更新文件

2.4 实例

# 目录结构
[root@test test]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 2月  26 21:33 file1
-rw-r--r--. 1 root root 0 2月  26 21:33 file2
drwxr-xr-x. 2 root root 6 2月  26 21:33 test3
drwxr-xr-x. 2 root root 6 2月  26 21:33 test4

# 1. 移动一个文件到目录下
[root@test test]# mv file1 test3
[root@test test]# ls test3
file1

# 2. 移动多个文件到目录下
[root@test test]# mv file1 file2 test3
[root@test test]# ls test3
file1  file2

# 3. 移动一个目录到另一个目录下
[root@test test]# mv test4 test3
[root@test test]# ls test3
file1  file2  test4

# 4. 移动一个同名文件到一个目录下
[root@test test]# touch file1  # 创建一个文件
[root@test test]# mv file1 test3  
mv:是否覆盖"test3/file1"? y   # 出现同名会提示

# 5.移动一个同名文件到一个目录下(覆盖前先备份)
[root@test test]# touch file1
[root@test test]# mv -b file1 test3
mv:是否覆盖"test3/file1"? y
[root@test test]# ls test3
file1  file1~  file2  test4  # 出现一个备份文件file1~

# 6.移动一个同名文件到一个目录下(强制覆盖)
[root@test test]# touch file1
[root@test test]# mv -f file1 test3 # 不提示

# 7.移动一个同名文件到一个目录下(最新才覆盖)
[root@test test]# echo "1" > file1
[root@test test]# echo "2" > test3/file1
[root@test test]# mv -u file1 test3  # /test目录下的file1,相比test3下的不是最新的不移动
[root@test test]# echo "3" > file1 # 更新/test/file1
[root@test test]# mv -u file1 test3 # 提示覆盖,移动
mv:是否覆盖"test3/file1"? y

# 8.重命名
[root@test test]# touch file1
[root@test test]# mv file1 file1_bak
[root@test test]# ls
file1_bak  test3


3. cp

3.1 命令格式

cp [选项] 源文件 目标文件

3.2 命令描述

复制文件或者目录

3.3 常用选项

-d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
-l:把目标文件建立为源文件的硬链接文件,而不是复制源文件;
-s:把目标文件建立为源文件的软链接文件,而不是复制源文件;
-p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
-r:递归复制,用于复制目录;
-a:相当于 -dpr 选项的集合

3.4 实例

# 目录结构
[root@test  test]# ll -rt
总用量 0
-rw-r--r--. 1 root root 0 2月  27 08:42 file1
-rw-r--r--. 1 root root 0 2月  27 08:42 file2
drwxr-xr-x. 2 root root 6 2月  27 08:42 test1
drwxr-xr-x. 2 root root 6 2月  27 08:42 test2

# 1.1 复制一个文件
[root@test test]# cp file1 test1/
[root@test test]# ls -R
.:
file1  file2  test1

./test1:
file1

# 1.2 复制一个目录
cp -r test2 test1  # 复制目录需要添加-r

# 复制文件并带有所有的属性
-rwxrwxrwx. 1 testUser testUser  0 2月  27 08:46 file3  # 测试文件
[root@test test]# cp file3 test2 # 没有加-p不会复制属性
[root@test test]# ls -l test2
总用量 0
-rwxr-xr-x. 1 root root 0 2月  27 08:48 file3
[root@test test]# cp -p file3 test2
cp:是否覆盖"test2/file3"? y
[root@test test]# ls -l test2
总用量 0
-rwxrwxrwx. 1 testUser testUser 0 2月  27 08:46 file3 # 加-p之后可以复制属性

# 1.3 把目标文件建立为源文件的软链接文件
[root@test test]# cp -s file1 file1_link # 加选项-s
[root@test test]# ls -l
总用量 0
-rw-r--r--. 1 root     root      0 2月  27 08:42 file1
lrwxrwxrwx. 1 root     root      5 2月  27 08:52 file1_link -> file1

# 1.4 把目标文件建立为源文件的硬链接文件
[root@test test]# cp -l file2 file2_ln (加入选项-l)
[root@test test]# ls -li (可以使用ls --help 查看,ls -i 的意义)
总用量 0
34810696 -rw-r--r--. 2 root     root      0 2月  27 08:42 file2
34810696 -rw-r--r--. 2 root     root      0 2月  27 08:42 file2_ln

# 1.5 源文件为软链接复制后的目标文件也为软链接
[root@test test]# cp -d file1_link file1_link_cp(加入选项-d)
[root@test test]# ls -l
lrwxrwxrwx. 1 root     root      5 2月  27 08:52 file1_link -> file1
lrwxrwxrwx. 1 root     root      5 2月  27 09:03 file1_link_cp -> file1


4 附加

4.1 5分钟让你明白“软链接”和“硬链接”的区别

https://www.jianshu.com/p/dde6a01c4094

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值