- 操作文件和目录
- 通配符
- *:匹配任意多个字符(包括零个或者多个)
[root@zabbix ~]# ll -l * 列出所有文件或者目录,包括目录中的子目录或者子文件
-rw-r--r--. 1 root root 0 Aug 21 01:10 123.txt
-rw-r--r--. 1 root root 1287 May 2 10:16 wys.log
wys:
total 28
-rw-r--r--. 1 root root 681 May 24 15:53 docker-compose-stack-config.yml
drwxr-xr-x. 2 root root 43 Jun 4 10:29 etcd
-rw-r--r--. 1 root root 44 May 21 16:48 my_config.txt
drwxr-xr-x. 2 root root 85 Jun 8 11:20 soft
drwxr-xr-x. 2 root root 36 May 18 11:58 test
-rw-r--r--. 1 root root 34 May 21 17:19 ubuntu_config.txt
- ?:匹配任意一个字符(注意:仅仅是一个,而且不包含0个)
[root@zabbix ~]# ls wys目录 wys.log文件
123.txt mylog mysql.tar.gz wys wys.log
[root@zabbix ~]# ll -l wy? ?代表只匹配一个,也就只有wys目录
total 28
-rw-r--r--. 1 root root 681 May 24 15:53 docker-compose-stack-config.yml
drwxr-xr-x. 2 root root 43 Jun 4 10:29 etcd
-rw-r--r--. 1 root root 44 May 21 16:48 my_config.txt
- [characters]:匹配任意一个属于字符集中的字符
[root@zabbix ~]# ls 以m或者w开头的文件有四个:mylog mysql.tar.gz wys(目录) wys.log
123.txt mylog mysql.tar.gz wys wys.log
[root@zabbix ~]# ll -l [wm]* [wm]表示以w或者m开头的任何文件或者目录
-rw-r--r--. 1 root root 7166 Jun 7 18:33 mylog
-rw-r--r--. 1 root root 419737600 May 14 11:32 mysql.tar.gz
-rw-r--r--. 1 root root 1287 May 2 10:16 wys.log
wys:
total 28
-rw-r--r--. 1 root root 681 May 24 15:53 docker-compose-stack-config.yml
-rw-r--r--. 1 root root 427 May 18 11:58 docker-compose-stack.yml
-rw-r--r--. 1 root root 100 May 16 09:24 docker-compose.yml
-rw-r--r--. 1 root root 231 May 15 09:50 docker-compose.yml_bak
- [!characters]:匹配任意一个不属于字符集中的字符
[root@zabbix ~]# ls 以m或者w开头的文件有四个:mylog mysql.tar.gz wys(目录) wys.log
123.txt mylog mysql.tar.gz wys wys.log
[root@zabbix ~]# ll -l [!wm]* [wm]表示不以w或者m开头的任何文件或者目录,那就是指剩下123.txt了
-rw-r--r--. 1 root root 0 Aug 21 01:10 123.txt
- [[:class:]]:匹配任意一个属于指定字符类中的字符,这些字符类可以试下面一个:
- [:alnum:]:匹配任意一个字母或数字
[root@zabbix ~]# ls 以数字或者字母(a-z或者A-Z)开头的文件或者目录除了_char.txt外都是
123.txt _char.txt mylog mysql.tar.gz wys wys.log
[root@zabbix ~]# ll -l [[:alnum:]]* 以数字或者字母开头的文件或者目录
-rw-r--r--. 1 root root 0 Aug 21 01:10 123.txt
-rw-r--r--. 1 root root 7166 Jun 7 18:33 mylog
-rw-r--r--. 1 root root 419737600 May 14 11:32 mysql.tar.gz
-rw-r--r--. 1 root root 1287 May 2 10:16 wys.log
wys:
total 28
-rw-r--r--. 1 root root 681 May 24 15:53 docker-compose-stack-config.yml
-rw-r--r--. 1 root root 427 May 18 11:58 docker-compose-stack.yml
-rw-r--r--. 1 root root 100 May 16 09:24 docker-compose.yml
-rw-r--r--. 1 root root 231 May 15 09:50 docker-compose.yml_bak
drwxr-xr-x. 2 root root 43 Jun 4 10:29 etcd
- [:alpha:]:匹配任意一个字母
[root@zabbix ~]# ls 以数字或者字母(a-z或者A-Z)开头的文件或者目录除了_char.txt外都是
123.txt _char.txt mylog mysql.tar.gz wys wys.log
[root@zabbix ~]# ll -l [[:alpha:]]* 以字母开头的文件或者目录,123.txt是以数字开头的,所以不会显示,_char.txt是以符号开头的也不会显示
-rw-r--r--. 1 root root 7166 Jun 7 18:33 mylog
-rw-r--r--. 1 root root 419737600 May 14 11:32 mysql.tar.gz
-rw-r--r--. 1 root root 1287 May 2 10:16 wys.log
wys:
total 28
-rw-r--r--. 1 root root 681 May 24 15:53 docker-compose-stack-config.yml
-rw-r--r--. 1 root root 427 May 18 11:58 docker-compose-stack.yml
-rw-r--r--. 1 root root 100 May 16 09:24 docker-compose.yml
-rw-r--r--. 1 root root 231 May 15 09:50 docker-compose.yml_bak
drwxr-xr-x. 2 root root 43 Jun 4 10:29 etcd
-rw-r--r--. 1 root root 44 May 21 16:48 my_config.txt
drwxr-xr-x. 2 root root 22 Jun 6 16:18 mypyton
drwxr-xr-x. 3 root root 23 Jun 8 11:23 myspringboot
drwxr-xr-x. 2 root root 6 Aug 15 16:12 nexus
-rw-r--r--. 1 root root 30 May 21 17:19 nginx_config.txt
- [:digit:]:匹配任意一个数字
[root@zabbix ~]# ls 以数字或者字母(a-z或者A-Z)开头的文件或者目录除了_char.txt外都是
123.txt _char.txt mylog mysql.tar.gz wys wys.log
[root@zabbix ~]# ll -l [[:digit:]]* 显示以数字开头的文件或者目录
-rw-r--r--. 1 root root 0 Aug 21 01:10 123.txt
- [:lower:]:匹配任意一个小写字母
[root@zabbix ~]# ls 以数字或者字母(a-z或者A-Z)开头的文件或者目录除了_char.txt外都是
123.txt _char.txt mylog mysql.tar.gz wys wys.log
[root@zabbix ~]# ll -l [[:lower:]]* 显示以小写字母开头的文件或者目录
-rw-r--r--. 1 root root 7166 Jun 7 18:33 mylog
-rw-r--r--. 1 root root 419737600 May 14 11:32 mysql.tar.gz
-rw-r--r--. 1 root root 1287 May 2 10:16 wys.log
wys:
total 28
-rw-r--r--. 1 root root 681 May 24 15:53 docker-compose-stack-config.yml
-rw-r--r--. 1 root root 427 May 18 11:58 docker-compose-stack.yml
-rw-r--r--. 1 root root 100 May 16 09:24 docker-compose.yml
-rw-r--r--. 1 root root 231 May 15 09:50 docker-compose.yml_bak
- [:upper]:匹配任意一个大写字母
[root@zabbix ~]# ls 以数字或者字母(a-z或者A-Z)开头的文件或者目录除了_char.txt外都是
123.txt _char.txt mylog mysql.tar.gz wys wys.log
[root@zabbix ~]# ll -l [[:upper:]]* 以大小字母开头的文件,因为该目录下都是小写开头的,所以显示找不到文件或者目录
ls: cannot access [[:upper:]]*: No such file or directory
- [:alnum:]:匹配任意一个字母或数字
- *:匹配任意多个字符(包括零个或者多个)
- 字符范围
- 数字范围:[0-9]:表示从0到9
- 小写字母范围:[a-z]:表示a到z
- 大小字母范围:[A-Z]:表示A到Z
- mkdir — 创建目录
- 语法:mkdir directory...
- 举例:
- 创建一个目录:mkdir dir1
- 连续创建多个目录:mkdir dir1 dir2 dir3
- -p参数:目录存在不提示忽略过 mkdir -p dir1 dir2
- cp — 复制文件和目录
- 语法
- 复制单个文件或者目录到文件或者目录: cp -option item1 item2,注意:如果item1为目录,则item2也必须为目录
- 复制多个文件或者目录到目录: cp -option item... directory
- 选项
- -a:复制文件或者目录以及他们的属性,默认复制当前用户所具有的属性
- -r:递归复制文件目录,类似 -a,注意:复制目录时必须带-a或者-r,如果不带只能复制文件
- 仅仅复制文件
[root@zabbix ~]# cp wys/* wys_bak 要求目录 wys_bak 存在
cp: omitting directory ‘wys/etcd’
cp: omitting directory ‘wys/mypyton’
cp: omitting directory ‘wys/myspringboot’
cp: omitting directory ‘wys/nexus’
cp: omitting directory ‘wys/soft’
cp: omitting directory ‘wys/test’
- 复制文件和目录
[root@zabbix ~]# cp –r wys/* wys_bak 目录 wys_bak 不存在则创建
- 仅仅复制文件
- -i:如果文件存在则提示,默认是不提示直接覆盖的
[root@zabbix ~]# cp -i wys.log wys/
cp: overwrite ‘wys/wys.log’?
- -u:只拷贝目标目录不存在的文件或者覆盖目标文件较旧的版本
- 语法
- mv — 移动/重命名文件和目录
- 语法
- 单个文件或者目录到文件或者目录: mv-option item1 item2,注意:如果item1为目录,则item2也必须为目录
- 复制多个文件或者目录到目录: mv-option item... directory
- 选项:
- -i:如果文件存在则提示,默认是不提示直接覆盖的
- -u:只拷贝目标目录不存在的文件或者覆盖目标文件较旧的版本
- -i:如果文件存在则提示,默认是不提示直接覆盖的
- 举例
- 移动单个文件覆盖并提示
[root@zabbix ~]# mv -i wys.log wys/
cp: overwrite ‘wys/wys.log’?
- 移动多个文件到目录
[root@zabbix ~]# mv 123.txt _char.txt wys/ wys必须已经存在
- 移动目录
[root@zabbix ~]# mv wys/ wys_bak/ wys_bak可以不存在
- 移动单个文件覆盖并提示
- 语法
- rm — 删除文件和目录
- 语法:删除一个或者多个文件或者目录:rm -option item....
- 选项:
- -i:删除文件前要求用户确定
- -r:递归删除目录(子目录)
- -f:强制删除,如果文件不存在也忽略
- 举例:
- 删除提示:
[root@zabbix wys_bak]# rm -i wys.log
rm: remove regular empty file ‘wys.log’?
- 多个文件或者目录提示递归删除:
[root@zabbix wys_bak]# rm -r wys_log_2 test/
rm: remove regular empty file ‘wys_log_2’?
- 多个文件或者目录强制递归删除:
[root@zabbix wys_bak]# rm -rf wys_log_2 test/
[root@zabbix wys_bak]#
- 删除提示:
- ln — 创建硬链接和符号链接
- 创建硬链接
- 语法:ln file link
- file:可以是带路径的文件名,只能是文件,不能是目录
- link:链接名,通过连接名可以操作关联文件
- 举例:
[root@zabbix ~]# ln wys_bak/123.txt ln_123 wys_bak/123.txt 为带路径的文件 ln_123链接名
[root@zabbix ~]# ll
total 409916
-rw-r--r--. 2 root root 14 Aug 21 03:25 ln_123 链接ln_123看起来和一般的文件没有任何区别
- 通过链接修改内容反射到原文件
[root@zabbix ~]# cat > ln_123 通过链接修改文件内容
112
11222
[root@zabbix ~]# cat wys_bak/123.txt 原文件内容就是链接修改后的内容
112
11222
[root@zabbix ~]#
- 查看某个文件硬链接的数量
[root@zabbix ~]# ll
total 409916
-rw-r--r--. 2 root root 10 Aug 21 03:42 ln_123 2表示当前硬链接的数量为2:一个是ln_123,一个是123.txt
[root@zabbix ~]# ln wys_bak/123.txt ln_123_bak 新增一个链接ln_123_bak
[root@zabbix ~]# ll
total 409920
-rw-r--r--. 3 root root 10 Aug 21 03:42 ln_123
-rw-r--r--. 3 root root 10 Aug 21 03:42 ln_123_bak 表示当前硬链接的数量为3:一个是ln_123,一个是123.txt,一个是ln_123_bak
- 确认是不是硬链接
[root@zabbix ~]# ll –li 通过i 选项显示文件索引号,文件索引号相同的表示是同一个文件,2个链接和1个文件的索引号相同,说明他们是同一个文件
total 409920
17599828 -rw-r--r--. 3 root root 10 Aug 21 03:42 ln_123
17599828 -rw-r--r--. 3 root root 10 Aug 21 03:42 ln_123_bak
52126122 drwxr-xr-x. 2 root root 21 Aug 21 03:52 me
18083880 -rw-r--r--. 1 root root 7166 Jun 7 18:33 mylog
18256455 -rw-r--r--. 1 root root 419737600 May 14 11:32 mysql.tar.gz
17910226 lrwxrwxrwx. 1 root root 15 Aug 21 03:36 s_ln_123 -> wys_bak/123.txt
17910227 lrwxrwxrwx. 1 root root 8 Aug 21 03:37 s_ln_dir -> wys_bak/
171 drwxr-xr-x. 7 root root 4096 Aug 21 03:40 wys_bak
[root@zabbix ~]# cd wys_bak/
[root@zabbix wys_bak]# ll -li
total 32
17599828 -rw-r--r--. 3 root root 10 Aug 21 03:42 123.txt
17910224 -rw-r--r--. 1 root root 0 Aug 21 01:21 _char.txt
- 删除链接
[root@zabbix ~]# rm ln_123_bak 删除链接
rm: remove regular file ‘ln_123_bak’? y
[root@zabbix ~]# ll -li
total 409916
17599828 -rw-r--r--. 2 root root 10 Aug 21 03:42 ln_123 链接数量变为2了
- 删除文件本身,硬链接还能正常使用
[root@zabbix wys_bak]# rm 123.txt 删除文件本身
rm: remove regular file ‘123.txt’? y
[root@zabbix ~]# cat ln_123 硬链接还能使用,因为硬链接拷贝了文件本身
112
11222
- 语法:ln file link
- 软件软链接
- 语法:ln -s itemlink
- file:可以是带路径的文件名或者目录
- link:带路径的链接名,一般放在usr/bin目录下,这样就可以任何目录执行软链接了
- 通过连接名可以操作关联文件
- 举例:
- 创建一个指向文件的链接
[root@zabbix ~]# ln -s wys_bak/123.txt s_ln_123
[root@zabbix ~]# ll
-rw-r--r--. 1 root root 419737600 May 14 11:32 mysql.tar.gz
lrwxrwxrwx. 1 root root 15 Aug 21 03:36 s_ln_123 -> wys_bak/123.txt,文件类型第一个字母l 表示的是链接
- 创建一个指向目录的链接
[root@zabbix ~]# ln -s wys_bak/ s_ln_dir
[root@zabbix ~]# ll
total 409916
-rw-r--r--. 2 root root 14 Aug 21 03:25 ln_123
lrwxrwxrwx. 1 root root 8 Aug 21 03:37 s_ln_dir -> wys_bak/,文件类型第一个字母l 表示的是链接,wys_bak后面的/表示的是目录
- 提供过链接操作原目录
[root@zabbix ~]# cd s_ln_dir/ 通过链接进入目录
[root@zabbix s_ln_dir]# ll 进去的是链接目录,在链接中可以像操作原目录那样操作
total 32
-rw-r--r--. 2 root root 10 Aug 21 03:42 123.txt
-rw-r--r--. 1 root root 0 Aug 21 01:21 _char.txt
-rw-r--r--. 1 root root 681 May 24 15:53 docker-compose-stack-config.yml
-rw-r--r--. 1 root root 427 May 18 11:58 docker-compose-stack.yml
-rw-r--r--. 1 root root 100 May 16 09:24 docker-compose.yml
-rw-r--r--. 1 root root 231 May 15 09:50 docker-compose.yml_bak
- 删除文件本身,软件链接不能用了
[root@zabbix wys_bak]# rm 123.txt 删除文件本身
rm: remove regular file ‘123.txt’? y
[root@zabbix ~]# ll
total 409916
-rw-r--r--. 1 root root 10 Aug 21 03:42 ln_123
drwxr-xr-x. 2 root root 21 Aug 21 03:52 me
-rw-r--r--. 1 root root 7166 Jun 7 18:33 mylog
-rw-r--r--. 1 root root 419737600 May 14 11:32 mysql.tar.gz
lrwxrwxrwx. 1 root root 15 Aug 21 03:36 s_ln_123 -> wys_bak/123.txt
lrwxrwxrwx. 1 root root 8 Aug 21 03:37 s_ln_dir -> wys_bak/
drwxr-xr-x. 7 root root 4096 Aug 21 04:50 wys_bak
[root@zabbix ~]# cat s_ln_123 再次查看软链接,就不能使用了
cat: s_ln_123: No such file or directory
- 创建一个指向文件的链接
- 语法:ln -s itemlink
- 创建硬链接