hello大家好😁
前言❓
今天我们通过一个小实验来复习一下linux系统中挂载文件系统和查找文件的一些基本知识
题目是这样的:
- 系统上已存在含有XFS文件系统的块设备,但尚未挂载。确定块设备并将其挂载到 /review5-disk目录。若有需要,创建 /review5-disk
- 查找名为review5-path的文件。创建名为 /review5-disk/review5.txt 的文件,它应包含由review5文件的绝对路径组成的一行内容
- 查找contractor1和contractor 分别是其下属用户和下属组的所有文件。这些文件还必须具有八进制权限640。将这些文件的列表保存到 /review5-disk/review5-perms.txt
- 查找大小为100字节的所有文件。将这些文件的绝对路径保存到 /review5-disk/review5-size.txt
分析❗
我们一步一步来做:
- 使用lsblk -fs命令,确定包含XFS文件系统的空闲块设备
可以看到,vdb1块设备包含XFS文件系统,且它目前没有挂载到任何目录
1.2
使用sudo mkdir 命令,以超级用户身份创建/review5-disk目录,这时用当前用户的密码登录验证。如果你知道root的密码,也可以用su - 命令切换到root用户去创建目录
1.3
使用mount命令将vdb1块设备挂载到/review5-disk目录。注意只有root权限可以这么做
使用df -Th命令验证 vdb1块设备是否已成功挂载到/review5-disk目录
可以看见/dev/vdb1块块设备以及挂载到/review5-disk目录
不带参数运行 df 时,它会显示所有已挂载的普通文件系统的大小和可用空间大小等信息。-h选项用于改善输出大小的可读性,它的显示单位是2的整数次幂,而 -H 的显示单位是10的整数次幂。-T会显示文件系统类型
还有一个和它很像的命令,那就是du。du会显示某一特定目录树使用的空间的详细信息。
注意区分df和du
- 使用find命令加 -name选项查找名为 review5-path的文件。将它的绝对路径记录到/review5-disk/review5-path.txt 文本文件
注意,当我们使用普通用户进行查找时,因为权限有限,可能会遇到很多文件无法访问的情况,这时系统会将错误信息输出到终端,我们就会看到像下面直接涌出这样很多错误信息的情况,然后我们想要的正确信息就混在里面
怎么办呢?
我们可以将find 命令的所有错误重定向到/dev/null
然后终端就会显示正确的信息,以上输出就是review5-path文件的绝对路径
然后使用sudo vim /review5-disk/review5-path.txt 命令来创建该文本文件,并将内容写进去。
当然,我们也可以切换到root用户,直接执行下面这条命令,用root就不担心权限的问题啦
- 查找contractor1和contractor 分别是其下属用户和下属组的所有文件。这些文件还必须具有八进制权限640。将所有这些文件的绝对路径记录到/review5-disk/review5-perms.txt 文本文件。
使用 -user、-group、-perm选项分别指定所属用户、所属组、文件权限
- 查找大小为 100字节的所有文件。将所有这些文件的绝对路径记录到/review5-disk/review5-size.txt
因为这里查到的内容比较多,不像前两个,只有一个输出,所以我直接登录root用户,然后将标准输出重定向到指定文件中
-size选项指定文件大小。大小超过指定值用+,不超过用-
最后,我们再说说locate和find的区别。
locate也是Linux中用于搜索文件的工具。它们的区别如下:
- “locate” 使用数据库来进行搜索。这个数据库包含了整个文件系统的文件和目录信息。当你运行 “locate” 命令时,它会从数据库中快速查找匹配的文件名,并返回结果。注意,这意味着数据库需要定期更新(通常通过运行 “updatedb” 命令),以便反映最新的文件系统状态
- “find” 则是实时搜索,它会递归遍历指定的目录及其子目录,在每个文件系统对象上执行特定的测试条件(如文件名、大小、权限等),然后返回符合条件的结果
- “locate” 旨在提供快速的文件搜索,尤其适用于大型文件系统
- “find” 提供了更强大和灵活的搜索功能。你可以根据多个条件组合来搜索文件,如文件类型、大小、所有者、权限等
总结💯
通过这个小实验,我们复习了:
- 如何挂载现有的文件系统
- 如何根据文件的名称、权限、大小查找文件
- df 和 du命令的区别
- 重定向
- locate和find的区别
感谢💖
好啦,这次的分享就到这里,感谢大家看到这里💕,我目前还是学习中小白,十分希望能和各位朋友们大佬们在讨论区互动💫再次感谢💞