欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-18 21:39:17
...

1. rm

1.1 命令格式

rm[选项] 文件或目录

1.2 命令描述

删除目录或者文件

1.3 常用选项

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

1.4 实例

[[email protected] test]# rm test4      # rm命令只能删除一个普通文件,不能是一个目录(并且删除之前会提示)
rm: 无法删除"test4": 是一个目录
[[email protected] test]# rm -r test4 
rm:是否进入目录"test4"? 
[[email protected] 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
[[email protected] test]# mkdir -p test4/{test4_1,test4_2,test4_3,test4_4}
[[email protected] test]# ls test4
test4_1  test4_2  test4_3  test4_4
[[email protected] test]# rm -f test4 
rm: 无法删除"test4": 是一个目录
[[email protected] test]# rm -rf test4  # 强制删除,没有提示(生产上少使用)

2. mv

2.1 命令格式

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

2.2 命令描述

移动文件或者目录

2.3 常用选项

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

2.4 实例

# 目录结构
[[email protected] 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. 移动一个文件到目录下
[[email protected] test]# mv file1 test3
[[email protected] test]# ls test3
file1

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

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

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

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

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

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

# 8.重命名
[[email protected] test]# touch file1
[[email protected] test]# mv file1 file1_bak
[[email protected] test]# ls
file1_bak  test3


3. cp

3.1 命令格式

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

3.2 命令描述

复制文件或者目录

3.3 常用选项

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

3.4 实例

# 目录结构
[[email protected]  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 复制一个文件
[[email protected] test]# cp file1 test1/
[[email protected] 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  # 测试文件
[[email protected] test]# cp file3 test2 # 没有加-p不会复制属性
[[email protected] test]# ls -l test2
总用量 0
-rwxr-xr-x. 1 root root 0 2月  27 08:48 file3
[[email protected] test]# cp -p file3 test2
cp:是否覆盖"test2/file3"? y
[[email protected] test]# ls -l test2
总用量 0
-rwxrwxrwx. 1 testUser testUser 0 2月  27 08:46 file3 # 加-p之后可以复制属性

# 1.3 把目标文件建立为源文件的软链接文件
[[email protected] test]# cp -s file1 file1_link # 加选项-s
[[email protected] 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 把目标文件建立为源文件的硬链接文件
[[email protected] test]# cp -l file2 file2_ln (加入选项-l)
[[email protected] 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 源文件为软链接复制后的目标文件也为软链接
[[email protected] test]# cp -d file1_link file1_link_cp(加入选项-d)
[[email protected] 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