Linux文件的搜寻
1 脚本文件名的查询
which(寻找“执行文件”) # which [-a] command 选项或参数: -a :将所有由 PATH 目录中可以找到的命令均列出,而不止第一个被找到的命令名称 注意:这个命令是根据PATH这个环境变量所规范的路径去查询“执行文件”的文件名。<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
2 文件名的查找
whereis (寻找特定文件)
# whereis [-bmsu] 文件或目录名 选项与参数: -b:只找 binary 格式的文件 -m:只找在说明档 manual 路径下的文件 -s:只找 source 来源文件 -u:搜寻不在上述三个项目当中的其他特殊文件
locate
# locate [-ir] keyword 选项与参数: -i:忽略大小写的差异; -r:后面可接正规表示法的显示方式 你会发现使用 locate 来寻找数据的时候特别的快, 这是因为 locate 寻找的数据是由(已创建的数据库/var/lib/mlocate/) 里面的数据所搜寻到的,所以不用直接在去硬盘当中存取数据。数据库的创建默认是在每天运行一次。 升级 locate 数据库的方法非常简单,直接输入『 updatedb 』就可以了。 updatedb 命令会去读取/etc/updatedb.conf 这个配置文件的配置,然后再去硬盘里面进行搜寻文件名的动作, 最后就升级整个数据库文件。
find
# find [PATH] [option] [action] 选项与参数: 1. 与时间有关的选项:共有 -atime, -ctime 与 -mtime -mtime n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的文件; -mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的文件档名; -mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的文件档名。 -newerfile :file 为一个存在的文件,列出比 file 还要新的文件档 2. 与使用者或群组名称有关的参数: -uid n :n 为数字,这个数字是使用者的帐号 ID,亦即 UID ,这个 UID 是记录在 /etc/passwd 里面与帐号名称对应的数字。 -gid n :n 为数字,这个数字是群组名称的 ID,亦即 GID,这个 GID 记录在 /etc/group。 -user name :name 为使用者帐号名称。 -group name:name 为群组名称。 -nouser :寻找文件的拥有者不存在 /etc/passwd 的人。 -nogroup :寻找文件的拥有群组不存在於 /etc/group 的文件。 3. 与文件权限及名称有关的参数: -name filename:搜寻文件名称为 filename 的文件; -size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的文件。这个 SIZE 的规格有: c: 代表 byte, k: 代表 1024bytes。所以,要找比 50KB 还要大的文件,就是『 -size +50k 』 -type TYPE :搜寻文件的类型为 TYPE 的,类型主要有:一般正规文件 (f), 装置文件 (b, c), 目录 (d), 连结档 (l), socket (s), 及 FIFO (p) 等属性。 -perm mode :搜寻文件权限『刚好等于』 mode 的文件,这个 mode 为类似 chmod 的属性值,举例来说, -rwsr-xr-x 的属性为 4755 。 -perm-mode :搜寻文件权限『必须要全部囊括 mode 的权限』的文件,举例来说, 我们要搜寻 -rwxr--r-- ,亦即 0744 的文件,使用 -perm-0744, 当一个文件的权限为 -rwsr-xr-x ,亦即 4755 时,也会被列出来, 因为 -rwsr-xr-x 的属性已经囊括了 -rwxr--r-- 的属性了。 -perm +mode :搜寻文件权限『包含任一 mode 的权限』的文件,举例来说,我们搜寻 -rwxr-xr-x ,亦即 -perm +755 时,但一个文件属性为 -rw------- 也会被列出来,因为他有 -rw.... 的属性存在! 4. 额外可进行的动作: -exec command :command 为其他命令,-exec 后面可再接额外的命令来处理搜寻到 的结果。 -print :将结果打印到屏幕上,这个动作是默认动作。
+4代表大于等于5天前的档名:ex>find /var -mtime +4
-4代表小于等于4天内的文件档名:ex>find /var -mtime -4
4则是代表4-5那一天的文件档名:ex>find /var -mtime 4
# find / -perm +7000 -exec ls -l {} \;
{} 代表的是『由 find 找到的内容』,如上图所示,find的结果会被放置到 {} 位置中;
-exec 一直到 \; 是关键字,代表 find 额外动作的开始 (-exec) 到结束 (\;) ,在这中间的就是 find 命令内的额外动作。 在本例中就是『 ls -l {} 』。
因为『 ; 』在 bash 环境下是有特殊意义的,因此利用反斜线来跳脱。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。