了解linux文件系统

本章主要介绍文件系统的管理
  • 了解什么是文件系统
  • 对分区进行格式化操作
  • 挂载分区
  • 查找文件
在Windows系统中,买了一块新的硬盘加到电脑之后,需要对分区进行格式化才能使
用,Linux系统中也是一样,首先我们要了解一下什么是文件系统。
14.1 了解文件系统
分区很复杂,但是为了好理解不妨先简化介绍。首先来看下图,记住这是一个分区。
当对一个分区格式化时,分区被分成两部分。
(1)右侧部分被划分成很多小格子,每个小格子称为block,默认大小为4KB。
(2)左侧部分为inode,用于记录文件的属性,每个文件都会占用一个 inode。
每个block中只能存储一个文件,假设一个文件aa只有
1KB存放在2号block中,则2号block还剩余3KB的空间,但
是这3KB的空间也不会存储其他数据了。所以,此文件大
小为1KB,占用空间为4KB,在Windows中会见到图14-2所
示的情况。
如果一个文件的值大于4KB,一个block存放不下,则会占用多个 block。例如,某文件
大小为9KB,则需要占用3个block。
当要读取某个文件时,如果系统不知道此文件在哪个block中,则要读取所有的
block(这个过程称为“遍历”),这样效率是极其低下的。所以,每个文件的属性都有对
应的inode条目来记录,例如,图14-1中的aa文件由10号inode记录,在inode中记录了aa 文件的属性,如大小、权限等,以及此文件占用了哪些block,inode相当于书的目录。当需
要读取文件时。在inode中可以快速找到此文件,从而快速定位此文件所在的block。
总之,创建文件系统的过程就理解为创建图14-1中小格子的过程。不同的内核所使用的
文件系统不一样,例如,Windows 中常见的文件系统包括FAT、NTFS等,Linux中常见的
文件系统包括EXT3、EXT4、XFS等。这些不同的文件系统具有不同的功能,包括所支持的单
个文件最大能有多大,整个文件系统最大能有多大,RHEL8/CentOS8中默认的文件系统是
XFS。
14.2 了解硬链接
前面讲了inode记录的是某文件的属性信息,下图
10号 inode记录了aa文件的属性,包括aa文件的名称、大小、权限等,及其所在的
block,可以在10号inode中给aa文件再起一个名称bb
此时对10号inode来说,用两个名称aa和 bb来记录2号block中的文件,所以 aa和 bb对
应的是同一个文件,那么aa和 bb就是硬链接关系。
练习:先拷贝一个测试文件,并查看属性
[root@66 ~]# cp /etc/hosts aa
[root@66 ~]# ls -lh aa
-rw-r--r--. 1 root root 158 12月  3 21:53 aa
此处的加粗字1,指的是aa文件只有一个硬链接,即存储在 block中的文件只有一个名称
aa。下面对aa做硬链接,命令如下。
[root@66 ~]# ln aa bb
查看aa和bb的属性,命令如下。
[root@66 ~]# ls -lh aa bb
-rw-r--r--. 2 root root 158 12月  3 21:53 aa
-rw-r--r--. 2 root root 158 12月  3 21:53 bb
硬链接数显示为2,说明存储在 block中的那个文件有两个名称aa和 bb。aa和 bb是在同
一个inode上记录的两个名称,通过ls -i可以查看aa和 bb分别是在哪个inode上记录的,命
令如下。
[root@66 ~]# ls -i aa ; ls -i bb
135200478 aa
135200478 bb
14.3 创建文件系统 
再看看前面已经在上创建过的分区
[root@66 ~]# fdisk -l /dev/nvme0n1p2
Disk /dev/nvme0n1p2:99 GiB,106299392000 字节,207616000 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9557d4ec

设备             启动     起点     末尾    扇区 大小 Id 类型
/dev/nvme0n1p2p1          2048  4196351 4194304   2G 83 Linux
/dev/nvme0n1p2p2       4196352  8390655 4194304   2G 83 Linux
/dev/nvme0n1p2p3       8390656 12584959 4194304   2G 83 Linux
/dev/nvme0n1p2p4      12584960 16779263 4194304   2G 83 Linux
下面对分区进行格式化,格式化的语法如下。‘
1 mkfs ‐f 文件系统 ‐选项 /dev/分区
2 或
3 mkfs.文件系统 ‐选项 /dev/分区
练习:把/dev/sdb1格式化为XFS文件系统
[root@op ~]# mkfs.xfs /dev/nvme0n2p1 
meta-data=/dev/nvme0n2p1         isize=512    agcount=4, agsize=131072 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=524288, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@op ~]# 
从上面的 bsize=4096可以看到,block的大小默认设置为了4KB,如果指定为1KB,需要
加上-b size=1024选项,命令如下。
[root@op ~]# mkfs.xfs -b size=1024 /dev/nvme0n2p1
mkfs.xfs: /dev/nvme0n2p1 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.
[root@op ~]# 
再次格式化时,因为/dev/sdbl已经存在文件系统了,所以再次格式化失败,需要加上-f
选项表示强制格式化,命令如下。
[root@op ~]# mkfs.xfs -f -b size=1024 /dev/nvme0n2p1
meta-data=/dev/nvme0n2p1         isize=512    agcount=4, agsize=524288 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=1024   blocks=2097152, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=1024   blocks=10240, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
每个文件系统都会有唯一的一个UUID来记录,查看系统中所有的UUID,可以通过如下命今
[root@op ~]# blkid
/dev/nvme0n1: PTUUID="b90b11e9" PTTYPE="dos"
/dev/nvme0n1p1: UUID="39c6c821-3677-4f0e-bdc2-00be9d201860" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="b90b11e9-01"
/dev/nvme0n1p2: UUID="gZM2bi-qVuR-wRZc-pCB5-7fdf-U2B9-YjxmLm" TYPE="LVM2_member" PARTUUID="b90b11e9-02"
/dev/nvme0n2: PTUUID="15825c06" PTTYPE="dos"
/dev/nvme0n2p1: UUID="64dc50ce-a7c7-40a4-9421-d7c96c92035c" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="15825c06-01"
/dev/nvme0n2p2: PARTUUID="15825c06-02"
/dev/nvme0n2p3: PARTUUID="15825c06-03"
/dev/nvme0n2p4: PARTUUID="15825c06-04"
/dev/sr0: BLOCK_SIZE="2048" UUID="2021-10-13-03-57-25-00" LABEL="RHEL-8-5-0-BaseOS-x86_64" TYPE="iso9660" PTUUID="4d694e6c" PTTYPE="dos"
/dev/mapper/rhel-root: UUID="2710fa4e-e1f8-4ef8-ad11-aed63749df22" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/rhel-swap: UUID="5abbdb6d-b919-4ba1-b3df-6653c86ab4b3" TYPE="swap"
[root@op ~]# 
如果想单独查看某个XFS格式的文件系统的UUID,可以通过“xfs admin -u分区名”来
查看,命令如下。
[root@op ~]# xfs_admin -u /dev/nvme0n2p1
UUID = 64dc50ce-a7c7-40a4-9421-d7c96c92035c
[root@op ~]# 
14.4 挂载文件系统
分区格式化好了之后是不可以直接访问的,要想访问此分区,必须把它挂载到某个目录上
才行,如同在 Windows中创建一个分区,必须给它一个盘符或装在某个NTFS文件夹中。
要查看哪些分区已经挂载及分区的使用情况,可以使用df命令,命令如下。
[root@op ~]# df
文件系统                  1K-块     已用     可用 已用% 挂载点
devtmpfs                 887060        0   887060    0% /dev
tmpfs                    916600        0   916600    0% /dev/shm
tmpfs                    916600     9672   906928    2% /run
tmpfs                    916600        0   916600    0% /sys/fs/cgroup
/dev/mapper/rhel-root 102706180  5495364 97210816    6% /
/dev/nvme0n1p1          1038336   263108   775228   26% /boot
tmpfs                    183320       28   183292    1% /run/user/0
/dev/sr0               10717954 10717954        0  100% /run/media/root/RHEL-8-5-0-BaseOS-x86_64
[root@op ~]# 
挂载语法的命令如下。 
1 mount ‐o optl,opt2,... /dev/设备/目录
首先创建一个目录/xx,并铂贝进去几个测试文件,命令如下。
[root@op ~]# mkdir /xx
[root@op ~]# cp /etc/hosts /etc/services /xx/
[root@op ~]# ls /xx/
hosts  services
[root@op ~]# 
下面把/dev/sdb1挂载到/xx 上,注意/xx中内容的变化,命令如下。
[root@op ~]# mount /dev/nvme0n2p1 /xx/
[root@op ~]# 
以后访问/xx就是访问/dev/sdb1中的内容了,现在查看/xx中的内容,命令如下。
[root@op ~]# ls /xx/
[root@op ~]# 
此时发现/xx中的内容看不到了,原因是如果某个目录挂载了一个分区,则这个目录中原
有的内容就会被隐藏。为了更好地理解,可以参考图14-5。
此时是没有挂载的情况,/xx中有自己的文件,然后把/dev/sdb1挂载到/xx 上,如图
例如,有一个碗把/xx中原有的内容盖住了,现在看到的是上层碗中的内容,
即/ldev/sdbl中的内容。只有卸载掉才能再次看到,卸载的命令是umount,用法如下。
1 umount /挂载点
2 或
3 umount /dev/设备
现在把/dev/sdb1卸载掉,然后查看/xx中的内容,命令如下。
[root@op ~]# umount /dev/nvme0n2p1
[root@op ~]# ls /xx
hosts  services
[root@op ~]# 
卸载后又能看到/xx中的内容了,就相当于又把盖在/xx上面的那个“碗”拿掉了,所以能
看到/xx中的内容了。
14.5 设置永久挂载
前面使用mount挂载设备也只是临时生效,重启系统之后此设备不会自动挂载。如果希
望重启之后能自动挂载,需要写入/etc/fstab中,格式如下。
1 设备 挂载点 文件系统 挂载选项 dump值 fsck值
2 或
3 设备UUID 挂载点 文件系统 挂载选项 dump值 fsck值
最后两列的意义如下。
(1)dump值:意思是能否被dump备份命令作用,dump是一个用来作为备份的命令,通
常这个参数的值为0或1。
(2)fsck值:是否检验扇区,开机的过程中,系统默认会以fsck检验系统是否完整(clean)。
这两列值建议写0,不要写其他值。
现在希望/dev/sdb1在重启之后能自动挂载到/xx 上
这样开机就会自动挂载,当然这里也可以写/dev/sdb1的 UUID。先获取/dev/sdb1的
UUID,命令如下。
[root@op ~]# xfs_admin -u /dev/nvme0n2p1
UUID = 64dc50ce-a7c7-40a4-9421-d7c96c92035c
修改/etc/fstab的内容,命令如下。
UUID=e620442d?53a3?4240?8111?03549fc6d6ff /xx    xfs     defaults       0 0
在写人/etc/fstab之后,如果/dev/sdb1当前没有挂载,执行mouont -a命令可以自动挂
载。
14.6 查找文件
Linux中也有这样出较方便的工具,如
which、locate、find等。
which一般用于查询可执行的路径,例如,要查询vim所在路径,命令如下。
[root@op ~]# which vim
/usr/bin/vim
[root@op ~]# 
locate用于查询文件名或路径中含有特定关键字的文件,locate基于数据库文件
var/lib/mlocate/mlocate.db 进行查询,如果此文件不存在则查询报错,
[root@op ~]# locate aa.zip 
/root/aa.zip
[root@op ~]# 
这个数据文件默认每天更新一次,所以如果现在创建一个新的文件,命令如下。
[root@op ~]# touch blabxxx
[root@op ~]# locate blabxxx 
[root@op ~]# 
此文件在mlocate.db更新之后创建,也就是文件 lduanxxx还没有出现在此数据库文件
中,所以查询不到。此时只要更新一下数据库即可,命令如下。
[root@op ~]# updatedb
[root@op ~]# locate blabxxx 
/root/blabxxx
[root@op ~]# 
locale命令是用于设置编码的,因为与locate比较像,所以这里提一下。在命令行中直接
输入“locale”,命令如下。
[root@op ~]# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
[root@op ~]# 
14.7 find的用法
find是一款功能强大的工具,可以基于文件名、创建及修改时间、所有者、大小、权限等
进行查询,语法如下。
1 find 目录 ‐属性 值
(1)目录:指的是限定在哪个目录下查询,如果不指定则是在当前目录下查询。
(2)属性:指的是基于什么查询,可以根据name、size、user、perm 等进行查询。
(3)值:依赖于前面的属性,例如,-name lduanxx,这里根据名称进行查询,查询名称
为1duanxx的文件。
也可以表示否定的意思,在属性前面加上叹号“!”,语法如下。
1 find 目录 ! ‐属性 值
这里的意思是查找属性不是这个值的文件。
例如,!-name lduanxx,这里根据名称进行查询,查询名称不是 lduanxx的文件。
下面的演示都在新创建的目录11下进行查询,命令如下。
[root@op ~]# mkdir 11 ; cd 11
[root@op 11]# 
在此目录下创建几个测试文件,命令如下。
[root@op 11]# touch Blab001 blab001
[root@op 11]# dd if=/dev/zero of=file1 bs=1m count=1
dd: 无效的数字: “1m”
[root@op 11]# dd if=/dev/zero of=file1 bs=1M count=1
记录了1+0 的读入
记录了1+0 的写出
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00248763 s, 422 MB/s
[root@op 11]# dd if=/dev/zero of=file2 bs=1M count=2
记录了2+0 的读入
记录了2+0 的写出
2097152 bytes (2.1 MB, 2.0 MiB) copied, 0.00248569 s, 844 MB/s
[root@op 11]# dd if=/dev/zero of=file3 bs=1M count=3
记录了3+0 的读入
记录了3+0 的写出
3145728 bytes (3.1 MB, 3.0 MiB) copied, 0.00130963 s, 2.4 GB/s
[root@op 11]# dd if=/dev/zero of=file4 bs=1M count=4
记录了4+0 的读入
记录了4+0 的写出
4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.00143011 s, 2.9 GB/s
[root@op 11]# dd if=/dev/zero of=file5 bs=1M count=5
记录了5+0 的读入
记录了5+0 的写出
5242880 bytes (5.2 MB, 5.0 MiB) copied, 0.00258727 s, 2.0 GB/s
[root@op 11]# 
为了测试方便,按下面的命令修改文件的权限、所有者和所属组,注意文件名的大小写,
命令如下。
[root@op 11]# chown blab.blab Blab001 ; chgrp blab blab001 
[root@op 11]# chown 888 file1 ; chgrp 888 file2 ; chown 888.888 file3
[root@op 11]# chmod 326 file1 ; chmod 226 file2 ; chmod 327 file3
[root@op 11]# chmod 441 file4
[root@op 11]# 
下面查看所有文件,命令如下。
[root@op 11]# ls -lh
总用量 15M
drwxr-xr-x. 2 root root    6 11月 28 15:03 22
-rw-r--r--. 1 root blab    0 12月  5 11:14 blab001
-rw-r--r--. 1 blab blab    0 12月  5 11:14 Blab001
--wx-w-rw-. 1  888 root 1.0M 12月  5 11:15 file1
--w--w-rw-. 1 root  888 2.0M 12月  5 11:15 file2
--wx-w-rwx. 1  888  888 3.0M 12月  5 11:16 file3
-r--r----x. 1 root root 4.0M 12月  5 11:16 file4
-rw-r--r--. 1 root root 5.0M 12月  5 11:16 file5
[root@op 11]# 
14.7.1 基于名称的查询
根据名称进行查询,命令如下。
[root@op 11]# find -name blab001 
./blab001
[root@op 11]# 
这里只显示了blab001,并没有显示blab001,因为 Linux中是严格区分大小写的。如果
要忽略大小写,可以使用-iname选项,
在使用find命令时,还是可以使用通配符的,记得要用双引号引起来,命令如下。
[root@op 11]# find -name "file*"
./file1
./file2
./file3
./file4
./file5
[root@op 11]# 
这里查询的是文件名以file开头的那些文件。
14.7.2 基于文件所有者和所属组的查询
根据文件的所有者进行查询,用-user选项,命令如下。
[root@op 11]# find -user blab
./Blab001
[root@op 11]# 
这里查询的是所有者为Iduan的那些文件。
在查询时,还可以用连接符连接多个查询条件,
(1)-a:表示“和”的关系,两边的条件都要满足。
(2)-o:表示“或”的关系,两边的条件满足一个即可。
下面查询所有者为blab且所属组也为blab的文件,命令如下。
[root@op 11]# find -user blab -o -group blab
./Blab001
./blab001
[root@op 11]# 
还可以根据uid进行查询,用-uid选项。下面查询文件所有者的uid为1000的那些文件

14.7.3 基于文件大小的查询
根据文件的大小进行查询,用-size选项。查询文件大小等于2M的文件,命令如下。
[root@op 11]# find -size 2M
./file2
[root@op 11]# 
如果大小前面加上加号“+”,表示大于:如果大小前面加上减号“-”,表示小于.

14.7.4 基于文件时间的查询
根据文件的时间进行查询,用-mtime选项,单位是天,这里天的表示如下。
(1)24小时以内,即一天以内,用-1表示。
(2)24~48小时,算1天,用1表示。
(3)超过48小时,算超过1天,用+1表示。
查询创建时间为1天的文件,命令如下。
[root@op 11]# find -mtime 1
[root@op 11]# 
查询创建时间超过1天的文件,命令如下。
[root@op 11]# find -mtime +1
14.7.5 基于文件类型的查询
14.7.5 基于文件类型的查询
根据文件的类型进行查询,用-type选项。常见的文件类型包括以下4种。
(1)d:表示目录(文件夹)。
(2)f:表示普通文件。
(3)l:表示软链接(快捷方式)。
(4)b:可用于存储数据的设备文件,如硬盘、光盘等。
在当前目录中找出所有的文件夹,命令如下。
[root@op 11]# find -type d
.
./22
[root@op 11]# 
这里只找到表示当前目录的点“.”。
14.7.6 基于文件权限的查询

根据文件的权限进行查询,用-perm选项。例如,我们要查找权限
为326的文件,查询时有3种用法,如图14-9所示。
(1)326:必须完全匹配326,权限不能多也不能少,方块位置的
权限都必须有,圆圈的位置不能有权限。
(2)/326:文件的权限只要配置326中的一个权限即可,如图14-9所示,只要具备方跌中
的一个权限就可以查询到。
(3)-326:可以比326权限多,但是不能少,如图 14-9所示,在方块位置的权限都满E的
情况下,圆圈的位置可以多。
通过326来查询,命令如下。
[root@op 11]# find -perm 326
./file1
通过-326来查询,命令如下。
[root@op 11]# find -perm -326
./file1
./file3
[root@op 11]# 
14.7.7 find查找含有特殊权限位的文件
查找suid、sgid和粘贴位这些特殊权限位,suid指的是在所有者的位置上有s位,sgid指的
是在所属组的位置上有s位,粘贴位指的是 other位置有 t 位。 查询特殊权限位的语法如下。
1 find /目录 ‐perm /N000
这里N是4、2、1中的某个数字或某几个数字的和,后面3个0表示忽略普通权限。
N=4:查找含有suid的文件。
N=2:查找含有sgid的文件。
N=1:查找含有粘贴位的文件。
N=6 6=4+2:查找含有suid或sgid的文件。以此类推。
给file1所有者位置添加s位,给file2所属组位置添加s位,给other位置添加 t 位。
[root@op 11]# chmod u+s file1
[root@op 11]# chmod g+s file2
[root@op 11]# chmod o+t file3
查看含有suid的文件。
[root@op 11]# find -perm /4000
./file1
只有 file1 满足条件。
14.7.8 find组合查询
find可以支持组合查询,语法如下。
1 find / 目录 \ ( 条件 1 条件 2 \ ) a \ ( 条件 3 条件 4 \ )
注意
这里“\(”后要有空格,“\)”前也要有空格。
\( 条件 1-o 条件2 \)是一个整体,条件1和条件2是“或”的关系,只要满足一个条件即可。条件\(
条件 3-o 条件4 \) 也是一个整体,条件3和条件4也是“或”的关系,只要满足一个条件即可。
这两个整体之间又是“和”的关系,这两个整体都要满足才行。
看下面的例子,在当前目录中找出文件大于或等于3M,且没有所有者或所属组的文件。
分析:
第一个条件是,文件的大小要大于3M或等于3M,这两个是“或”的关系,应该写作-
size3M-o-size +3M,这是一个整体。
第二个条件是,没有所有者或所属组,这两个也是“或”的关系,应该写作-nouser -o
nogroup,这也是一个整体。
这两个整体之间是“和”的关系,即这两个整体都要满足,所以最终写成如下样子。
[root@op 11]# find \( -size 3M -o -size +3M \) -a \( -nouser -o -nogroup \)
./file3
[root@op 11]# 
这里找到只有file3是满足条件的,查看这些文件的属性。
[root@op 11]# ls -lh
总用量 15M
drwxr-xr-x. 2 root root    6 11月 28 15:03 22
-rw-r--r--. 1 root blab    0 12月  5 11:14 blab001
-rw-r--r--. 1 blab blab    0 12月  5 11:14 Blab001
--ws-w-rw-. 1  888 root 1.0M 12月  5 11:15 file1
--w--wSrw-. 1 root  888 2.0M 12月  5 11:15 file2
--wx-w-rwt. 1  888  888 3.0M 12月  5 11:16 file3
-r--r----x. 1 root root 4.0M 12月  5 11:16 file4
-rw-r--r--. 1 root root 5.0M 12月  5 11:16 file5
[root@op 11]# 
14.7.9 排除某个目录
当在某个目录中查询时,它会在此目录及所有子目录中查询,想排除某个目录的查询的语
法如下。
1 find path1 \( ‐path path1/path2 ‐o ‐path path1/path3 \) ‐prune ‐o条件‐p
rint
这里的意思是在path1中查询,但是要排除path1下的path2和 path3,-prune的意思是
排除出现在它前面的目录,最后的“—print”是需要加上去的。
例如,我们在根目录/下查找没有所有者或所属组,且文件大小大于1M的文件,命令如
下。
[root@op 11]# find / \( -nouser -o -nogroup \) -a -size +1M
find: ‘/proc/4193/task/4193/fd/5’: 没有那个文件或目录
find: ‘/proc/4193/task/4193/fdinfo/5’: 没有那个文件或目录
find: ‘/proc/4193/fd/7’: 没有那个文件或目录
find: ‘/proc/4193/fdinfo/7’: 没有那个文件或目录
/root/11/file2
/root/11/file3
[root@op 11]# 
14.7.10 对查询结果进行操作
对find 找出来的文件进行相关操作。例如,找到以 file开头的文件并删除,命令如下。
[root@op 11]# find -name "file*" -exec rm -rf {} \;
[root@op 11]# 
这里find -name "file*"的意思是找到以file开头的文件,使用-exec选项作为连接符,后
面跟着操作这些文件的命令。这里是rm命令,{ }表示 find找到的那些文件,最后的“\;”是
固定的格式。
再次查看当前目录中的文件,命令如下。
[root@op 11]# ls
22  blab001  Blab001
[root@op 11]# 
可以看到,所有以file开头的文件都已经被删除了。
  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值