Linux学习记录--命令与文件的查询
命令与文件的查询
脚本与文件名查询:which
数据库更新:updatedb
脚本文件名的查询(which)
语法:which [-a] command
选项和参数:
-a:将由PATH目录中能找到的指令都列出
说明:which执行更具当前用户环境变量指定的位置去寻找command,并返回第一个找到的结果(-a则返回所有)
[root@localhost tmp]# echo $PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin [root@localhost tmp]# which ifconfig /sbin/ifconfig [root@localhost tmp]#
文件名查找
whereis
语法:whereis [-bmsu]文件或目录
选项和参数:
-b: 只找二进制格式的文件
-m:只找在说明文件manual路径下的文件
-s:只找source源文件
-u:查找不在上述三个选项的其他文件
[root@localhost tmp]# whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
说明:whereis并不是从PATH指定路径查找,而是利用数据库查询
locate
语法: locate [-ir] keyword
选项和参数:
-i:忽略大小写
-r:后可接正则表达式
举例:
[root@localhost tmp]# locate passwd
/etc/passwd
说明:linux会将所有文件都记录在数据库中,locate和whereis从这个数据库进行查询,并不是扫描硬盘,因此可以提高效率,但是也带来一个问题就是不能保准数据库的信息和硬盘式同步的。
为了避免上述问题,可以手都去更新数据库,updatedb
Find
语法:find [PATH] [OPTION] [ACTION]
PATH:要查找的路径
OPTION:
与时间相关的参数
-atime,-ctime,-mtime,以-mtime为例
-mtime n :表示在n天之前的“一天之内”被更改过的文件
-mtime +n :列出在n天之前,不包含n天,被更改的文件
-mtime –n : 列出在n天之内,含n天本身被更改的文件
-newer file: file 为一个存在的文件。列出比file还新的文件
举例:
[root@bogon ~]# find / -mtime 0
[root@bogon ~]# find /etc –newer /etc/passwd
与用户和用户组相关的参数
-uid n: 查询UID(用户ID)为n的文件
-gid n: 查询GID(用户组ID)为n的文件
-user name:查询所属用户名为name的文件
-group name: 查询所属用户组为name的文件
-nouser:查询不属于任何用户的文件
-nogroup查询不属于任何用户组的文件
举例:
[root@bogon ~]# find /home -user tkf
与文件权限及名称有关的参数
-name filename: 查找文件名为filename支持模糊查询
-size [+-]SIZE: 查询比SIZE大或小的的文件。大小单位c代表byte ,k代表kb
-type TYPE: 查找文件类型为TYPE的文件
-perm mode :搜寻文件权限刚好等于 ode的文件,这个 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....的属性存在!
举例:[root@bogon ~]# find / -name *http*
其他可进行的操作:
-exec command: command为其他命令 –exec后可接其他命令来处理查询到的结果
-print:将结果打印到屏幕上,默认操作
举例:
root@bogon ~]# find / -name *http* -exec ls -l {} \; -rw-r--r-- 1 root root 97 2008-05-24 /etc/pam.d/system-config-httpd -rw-r--r-- 1 root root 82 2008-05-24 /etc/security/console.apps/system-config-httpd -rw------- 1 root root 464 2008-05-24 /etc/alchemist/switchboard/system-config-httpd.switchboard.adl