Linux中用户查找文件的命令有很多,常见的有
- find
- locate
- whereis
- which
find
Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
常见的语法为
find path -option
常用的option参数有:
- -name
- -type
- f 一般文件
- d 目录
- c 字符设备文件
- b 块设备文件
- l link文件
- s socket文件
- -size 文件大小 单位是 b(blocks) c(字符数) k(kilo bytes) M G
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去 n 天过读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去 n 天过修改过的文件
常见的命令:
find . -type f #找到当前文件夹下的所有普通文件
find . -size +100M #找到当前文件夹下的所有大于100M的文件(所有类型的文件,包括文件夹)
find . -type f | xargs du -aS | sort -nr|head -10 #找到当前文件夹下的前10大的普通文件,并降序排列
locate
Linux locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。一般情况我们只需要输入 locate your_file_name 即可查找指定文件。
语法:
locate [-d ][--help][--version][文档]
常用参数:
- c 输出数量
- i –ignore-case 忽略大小写
常用命令:
locate passwd
locate(locate) 命令用来查找文件或目录。 locate命令要比find -name快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db 。这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
在使用的时候,刚刚创建的文件可能无法找到,因为数据库是定期更新的,因此需要手动bash updatedb
。
whereis
Linux whereis命令用于查找文件。
该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。
该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。
语法:
whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]
参数说明:
- -b 只查找二进制文件。
- -B<目录> 只在设置的目录下查找二进制文件。
- -f 不显示文件名前的路径名称。
- -m 只查找说明文件。
- -M<目录> 只在设置的目录下查找说明文件。
- -s 只查找原始代码文件。
- -S<目录> 只在设置的目录下查找原始代码文件。
- -u 查找不包含指定类型的文件。
whereis bash
which
Linux which命令用于查找文件。
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
参数:
- -n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
- -p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
- -w 指定输出时栏位的宽度。
which bash
输出bash命令的绝对路径