📅  最后修改于: 2023-12-03 15:05:41.909000             🧑  作者: Mango
在 Ubuntu 上使用命令行界面搜索文件名是非常快捷的方式,而且 find
命令可以帮助我们递归查找指定目录下匹配的文件或目录。
使用 find
命令的基本语法如下:
$ find [path] [expression]
path
:指定要查找的目录或路径,例如:/home/user/
expression
:查找文件的表达式,包含文件名、文件类型、文件大小等条件。根据文件名来查找是 find 命令中最常用的表达式之一,如下所示:
$ find [path] -name [filename]
例如,查找 /home/user
目录下名为 file.txt
的文件,命令如下:
$ find /home/user -name file.txt
我们还可以使用通配符来匹配文件名中的特定字符,例如:
$ find /home/user -name '*.txt'
$ find /home/user -name 'file*'
$ find /home/user -name '*file*'
上述命令分别可以匹配 .txt
后缀的文件、文件名以 file
开头的文件和文件名中包含 file
的文件。
在查找时,我们可以使用 -iname
选项来忽略大小写,例如:
$ find /home/user -iname 'FILE.txt'
这样就可以匹配文件名为 file.txt
或 FILE.txt
的所有文件了。
find 命令也支持根据文件类型查找,例如查找所有的 PNG 格式的图片文件:
$ find /home/user -type f -name '*.png'
在这个命令中,-type
选项指定了只查找类型为文件的项,像目录和符号链接是不包含在内的。
我们可以使用 -size
选项来查找特定大小的文件,例如:
$ find /home/user -size +10M # 查找大于 10MB 的文件
$ find /home/user -size -10M # 查找小于 10MB 的文件
$ find /home/user -size 10M # 查找大小为 10MB 的文件
在默认情况下,find 命令会递归查找指定路径下的所有子目录,如果你想要在某个目录下查找文件而不搜索子目录,则需要使用 -maxdepth
选项,例如:
$ find /home/user/Documents -maxdepth 1 -name '*.txt'
这个命令只会查找 /home/user/Documents
目录下一级目录下的 .txt
文件。
在使用 find 命令时,请注意避免搜索系统文件,因为修改这些文件可能会导致系统崩溃。可以使用以下命令来避免这种情况:
$ find / -name '*.txt' -not -path '/sys/*' -not -path '/proc/*' -not -path '/dev/*'
在这个命令中,-not -path
选项用于排除系统目录下的文件。
以上就是使用 find
命令在 Ubuntu 中递归查找文件名的方法,希望能帮助你更高效地在命令行中查找文件。