文件管理命令—tree

选项 作用
-L 指定层级显示结构
-d 只查看目录不查看文件
-a 显示所有文件和目录包括隐藏文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
## 命令找不到
[root@localhost ~]# tree
-bash: tree: command not found
## 安装命令
[root@localhost ~]# yum install -y tree
#tree功能:以树状结构显示文件和目录
## 查看目录结构
[root@lb01 ~]# tree /usr/local/
/usr/local/
├── bin
├── etc
│   ├── applications
│   ├── info
│   └── man
│   ├── man1
│   ├── man1x
│   ├── man2
│   ├── man2x
│   ├── man3
│   ├── man9x
│   └── mann
└── src
32 directories, 0 files

# -L:level 查看指定层级的目录结构 如果目录层级太多,可以查看指定几层目录
[root@lb01 ~]# tree -L 2 /usr/local/

## -d:只查看目录不查看文件,查看指定目录层级的所有目录
[root@localhost ~]# tree -L 2 -d /etc/

文件管理命令—cp

选项 作用
-r、-R 递归复制目录(包括目录下的所有内容)
-v 显示复制的详细信息,复制过程
-p 保持文件属性
-a 即保持目录属性,又可以递归拷贝目录
-i 询问 (是否覆盖)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
copy 复制,拷贝
#语法
1.cp [选项]... [-T] 源文件 目标 (备份)
2.cp [选项]... 源文件... 目录
3.cp [选项]... -t 目录 源文件...

## 语法一:cp [选项]... [-T] 源文件 目标 (备份)
cp [OPTION]... [-T] SOURCE DEST
## 将saomiao.sh脚本复制到当前目录下并改名为123
[root@localhost ~]# cp saomiao.sh 123
## 将saomiao.sh脚本复制到/opt目录下并改名为abc
[root@localhost ~]# cp saomiao.sh /opt/abc

## 语法二:cp [选项]... 源文件... 目录
cp [OPTION]... SOURCE... DIRECTORY
## 将saomiao.sh脚本复制到/tmp目录下
[root@localhost ~]# cp saomiao.sh /tmp/
## 将saomiao.sh脚本拷贝到/tmp下并改名为2.txt,若2.txt文件已存在会询问,是否要覆盖
[root@localhost ~]# cp saomiao.sh /tmp/2.txt
## 一次性复制多个文件
[root@localhost ~]# cp 123 saomiao.sh cheak_student.sh anaconda-ks.cfg /opt/
## 报错示范
[root@localhost ~]# cp 123 saomiao.sh cheak_student.sh anaconda-ks.cfg abc(必须是目录,不能是文件)
cp: target ‘abc’ is not a directory
## 复制目录
[root@localhost ~]# cp -r /opt/ /tmp/ 将opt目录下所有文件复制到tmp下,包括opt目录
## 改名
[root@localhost ~]# cp -r /opt/ /root/xxx
## 复制目录下的所有文件,但不复制目录本身
[root@localhost ~]# cp -r /opt/* /tmp/
## 复制多个文件 显示复制过程
[root@localhost ~]# cp -rv 123 anaconda-ks.cfg
/tmp/
‘123’ -> ‘/tmp/123’
‘anaconda-ks.cfg’ -> ‘/tmp/anaconda-ks.cfg’

## 保持文件属性
[root@localhost ~]# cp -rp /home/zls1 /tmp/
## 语法二:cp [选项]... 源文件... 目录
[root@localhost ~]# cp -a /home/zls1 /tmp/
----
## 语法三:cp [选项]... -t 目录 源文件... (反人类)
cp [OPTION]... -t DIRECTORY SOURCE...
[root@localhost ~]# cp -t /tmp/ saomiao.sh
## 总结:
1.当复制的目标不存在时,将源文件复制出来并改名为目标名
2.当复制目标存在时,且是一个目录,则直接将文件复制到指定的目录下(名字不变)
3.当复制目标存在时,且是一个普通文件,则提示是否要覆盖,输入y是覆盖,输入n是不覆盖
4.当复制多个文件时,最后一个必须写已存在的目录,否则会报错
5.cp命令默认情况下无法拷贝目录,必须加-r选项,递归复制目录

文件管理命令—mv

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
-i	询问(是否要覆盖)
move 移动,剪切
1.mv [选项]... [-T] 源文件 目标(重命名)
2.mv [选项]... 源文件... 目录
3.mv [选项]... -t 目录 源文件... (反人类)

## 语法一:mv [选项]... [-T] 源文件 目标(重命名)
mv [OPTION]... [-T] SOURCE DEST
## 给saomiao.sh文件改名 内容覆盖并改名,源文件消失
[root@localhost ~]# mv saomiao.sh zls.sh
## 语法二:mv [选项]... 源文件... 目录
mv [OPTION]... SOURCE... DIRECTORY
[root@localhost ~]# mv zls.sh /opt/
## 覆盖文件
[root@localhost ~]# mv nginx.conf 123
mv: overwrite ‘123’? y
## 移动多个文件 移动文件到当前目录
[root@localhost ~]# mv /tmp/{123,anaconda,ks.cfg,cheak_student.sh,nginx.conf.bak} .
[root@localhost ~]# ll
total 8
-rw-r--r--. 1 root root 0 Apr 1 19:18 123
-rw-------. 1 root root 1379 Mar 21 20:58 anaconda-ks.cfg
-rw-r--r--. 1 root root 392 Aug 11 2022 cheak_student.sh
-rw-r--r--. 1 root root 0 Apr 1 19:18 nginx.conf.bak
## 错误演示
[root@localhost ~]# mv 123 anaconda-ks.cfg cheak_student.sh nginx.conf.bak abc 同cp,abc不是目录
mv: target ‘abc’ is not a directory
## 总结:
1.当移动的目标不存在时,将源文件重命名
2.当移动目标存在时,且是一个目录,则直接将文件剪切到指定的目录下(名字不变)
3.当移动目标存在时,且是一个普通文件,则提示是否要覆盖,输入y是覆盖,输入n是不覆盖
4.当移动多个文件时,最后一个必须写已存在的目录,否则会报错
## 语法三:mv [选项]... -t 目录 源文件... (反人类)
mv [OPTION]... -t DIRECTORY SOURCE...

文件管理命令—rm

选项 作用
-i 询问(是否要删除)
-r 递归删除
-f force 强制删除
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
remove 删除(delete)
## 语法:rm [选项]... 文件...
rm [OPTION]... FILE...
## 删除文件
[root@localhost ~]# rm 123
## 删除目录
[root@localhost ~]# rm -r zls2
## 删除目录下的所有内容,不包括目录本身
[root@localhost ~]# rm -r zls2/*
rm: remove regular empty file ‘123’? y
## 强制删除
[root@localhost ~]# rm -rf zls2/
[root@localhost ~]# rm -fr /tmp/*
1.rm删除普通文件的命令,默认只能删除普通文件
[root@localhost ~]# rm zls1
rm: cannot remove ‘zls1’: Is a directory
2.删除文件,不想询问,rm -f
3.删除目录,不想询问,rm -fr 、 rm -rf
## 两种让命令不走别名的方法:例如rm -i(提醒)别名是alias rm='rm -i',如果不想让rm走别名提醒
1.在命令前面加\(转义符)[root@lb01 ~]# \rm -r ac
2.使用命令的绝对路径 查看命令的绝对路径在哪which rm /usr/bin/rm
使用绝对路径删除/usr/bin/rm -r ab 就没有提醒是否删除即不走别名