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