侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux findfs命令教程:如何根据标签或UUID查找文件系统(附实例详解和注意事项)

Linux findfs命令介绍

findfs命令是find filesystem的缩写,它用于根据标签或UUID查找文件系统的设备名称。它是util-linux包的一部分,可以在大多数Linux发行版中找到。它的主要用途是在启动时挂载文件系统,或者在不知道设备名称的情况下检查文件系统的完整性。

Linux findfs命令适用的Linux版本

findfs命令适用于所有支持util-linux包的Linux版本,包括Debian, Ubuntu, Fedora, CentOS, Red Hat, SUSE, Arch等。如果你的Linux版本没有预装util-linux包,你可以使用以下命令来安装它:

  • Debian/Ubuntu: sudo apt-get install util-linux
  • Fedora/CentOS/Red Hat: sudo yum install util-linux
  • SUSE: sudo zypper install util-linux
  • Arch: sudo pacman -S util-linux

安装完成后,你可以使用findfs --version来查看findfs命令的版本信息。

Linux findfs命令的基本语法

findfs命令的基本语法如下:

findfs LABEL=label|UUID=uuid

其中,label和uuid是文件系统的标签或UUID,可以使用blkid命令来查看。如果找到匹配的文件系统,findfs命令会输出其设备名称,例如/dev/sda1。如果没有找到匹配的文件系统,findfs命令会返回错误信息,并退出。

Linux findfs命令的常用选项或参数说明

findfs命令没有太多的选项或参数,只有以下几个:

选项说明
-h, --help显示帮助信息,并退出
-V, --version显示版本信息,并退出
-n, --noheadings不输出列标题
-o, --output list指定输出的列,用逗号分隔,可用的列有:source, label, uuid, type, fstype, target, options, vfstype, mntops, freq, passno
-r, --raw以原始格式输出,不对特殊字符进行转义
-u, --notruncate不截断输出

Linux findfs命令的实例

下面是一些使用findfs命令的实例,你可以参考学习。

实例1:使用标签查找文件系统

如果你知道文件系统的标签,你可以使用findfs命令来查找其设备名称,例如:

[linux@bashcommandnotfound.cn ~]$ findfs LABEL=root
/dev/sda1

这个命令会查找标签为root的文件系统,并输出其设备名称为/dev/sda1。

实例2:使用UUID查找文件系统

如果你知道文件系统的UUID,你可以使用findfs命令来查找其设备名称,例如:

[linux@bashcommandnotfound.cn ~]$ findfs UUID=9f8c0a6a-4a4e-4d9f-9b3a-9c3f0f7f1f0f
/dev/sdb2

这个命令会查找UUID为9f8c0a6a-4a4e-4d9f-9b3a-9c3f0f7f1f0f的文件系统,并输出其设备名称为/dev/sdb2。

实例3:使用findfs命令挂载文件系统

你可以使用findfs命令来挂载文件系统,而不需要知道其设备名称,例如:

[linux@bashcommandnotfound.cn ~]$ sudo mount $(findfs LABEL=home) /home

这个命令会查找标签为home的文件系统,并将其挂载到/home目录下。

实例4:使用findfs命令检查文件系统

你可以使用findfs命令来检查文件系统的完整性,而不需要知道其设备名称,例如:

[linux@bashcommandnotfound.cn ~]$ sudo fsck $(findfs UUID=9f8c0a6a-4a4e-4d9f-9b3a-9c3f0f7f1f0f)
fsck from util-linux 2.36.2
e2fsck 1.46.2 (28-Feb-2021)
/dev/sdb2: clean, 123/65536 files, 45678/262144 blocks

这个命令会查找UUID为9f8c0a6a-4a4e-4d9f-9b3a-9c3f0f7f1f0f的文件系统,并使用fsck命令来检查其完整性。

实例5:使用findfs命令输出文件系统的详细信息

你可以使用findfs命令的-o选项来输出文件系统的详细信息,例如:

[linux@bashcommandnotfound.cn ~]$ findfs -o source,label,uuid,type,fstype /dev/sda1
/dev/sda1 root 9f8c0a6a-4a4e-4d9f-9b3a-9c3f0f7f1f0f ext4 ext4

这个命令会输出/dev/sda1文件系统的源设备,标签,UUID,类型,文件系统类型等信息。

实例6:使用findfs命令查找swap分区的设备

如果你想知道你的swap分区的设备名称,你可以使用findfs命令来查找,例如:

[linux@bashcommandnotfound.cn ~]$ findfs LABEL=SWAP
/dev/sda2

这个命令会查找标签为SWAP的文件系统,并输出其设备名称为/dev/sda2。

实例7:使用findfs命令查找EFI分区的设备

如果你的系统是使用UEFI启动的,你可能想知道你的EFI分区的设备名称,你可以使用findfs命令来查找,例如:

[linux@bashcommandnotfound.cn ~]$ findfs UUID=67E3-17ED
/dev/sda3

这个命令会查找UUID为67E3-17ED的文件系统,并输出其设备名称为/dev/sda3。

实例8:使用findfs命令查找多个文件系统的设备

如果你想一次查找多个文件系统的设备名称,你可以使用findfs命令的-xargs选项,例如:

[linux@bashcommandnotfound.cn ~]$ echo -e "LABEL=root\nUUID=9f8c0a6a-4a4e-4d9f-9b3a-9c3f0f7f1f0f" | xargs -n 1 findfs
/dev/sda1
/dev/sdb2

这个命令会从标准输入读取两个文件系统的标签或UUID,然后使用xargs命令将它们作为findfs命令的参数,输出对应的设备名称。

Linux findfs命令的注意事项

  • findfs命令只能查找已经格式化的文件系统,如果文件系统没有标签或UUID,findfs命令无法识别。
  • findfs命令只能查找本地的文件系统,如果文件系统是远程的,例如NFS,findfs命令无法查找。
  • findfs命令需要root权限才能执行,否则会报错。
  • 如果你的Linux版本没有findfs命令,你可能会看到以下错误信息:
[linux@bashcommandnotfound.cn ~]$ findfs LABEL=root
bash: findfs: command not found

这时,你需要安装util-linux包,或者使用其他方法来查找文件系统的设备名称。

Linux findfs相关命令

以下是一些和findfs命令相关的命令,你可以点击链接查看更多的介绍和实例。

0

评论区