1.1 查操作命令
使用目录结构最大的好处就是可以将不同的文件进行分类,方便使用。但是无论目录规划的多好,总会有不知道要使用的文件存在什么地方的问题,这时就需要使用查工作到自己需要的文件。下面是在Linux中常用的一些与查相关的命令。
1.1.1 locate:查文件或目录
locate命令用于查文件或目录,该命令语法如下。
locate 查内容
locate命令用于查文件或目录,该命令只会在保存文件和目录名称的数据库中查符合条件的内容。在查内容中使用“*”表示任意个字符;使用“?”表示任何一个字符。比如查内容为“tony*zhang”,locate命令会查所有以“tony”开始并且以“zhang”结尾的文件和目录。如果有目录的名称叫“tony_zhang”则会显示出该目录下包括子目录在内的所有文件。locate命令并不特别看待“/”、“.”为特殊符号,名为“tony.zhang”的文件或路径名“tony/zhang”也符合查条件。
locate命令查的速度非常快,这是因为该命令并不是实际在硬盘中每个目录去查文件,而是在一个保存了硬盘上目录结构及文件名的数据库中查,也是因为这个原因对于刚新增、修改、删除的文件和
目录,locate命令有可能无法到,这时需要使用如下命令更新数据库。在有些Linux发行版中系统会定期执行该命令。
[root@srv ~]# updatedb
下面看几个locate命令的例子。
●查名为grub的文件或目录。
[root@srv ~]# locate grub
●查名称中包括“charles”的文件或目录。
[root@srv ~]# locate *charles*
1.1.2 which:查文件
which命令用于查文件,该命令语法如下。
which [文件]
which命令用于查文件,但该命令只会在PA TH环境变量中定义的路径以及命令别名中查。下面看几个which命令的例子。
●显示PA TH环境变量中定义的路径。
[root@srv ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bi n:/root/bin
●在PA TH环境变量中定义的路径以及命令别名中查“ll”。
[root@srv ~]# which ll
alias ll='ls -l --color=tty'
/bin/ls
1.1.3 whereis:查文件
whereis命令用于查文件,该命令语法如下。
whereis [-bu] [-B <;目录>] [-M <;目录>] [-S <;目录>] [文件…]
常用选项:
●文件…:要查的文件。
●-b:只查二进制文件。
●-u:查不包含指定类型的文件。
●-B <;目录>:只在指定的目录下查二进制文件。
●-M <;目录>:只在指定的目录下查帮助文件。
●-S <;目录>:只在指定的目录下查源码文件。
whereis命令只在特定的目录中查符合条件的文件,查的文件类型会属于源码文件、二进制文件或帮助文件。如果不指定目录,whereis命令会在下列目录中查。
●/bin ●/etc ●/sbin
●/usr/bin ●/usr/etc ●/usr/games
●/usr/include ●/usr/lib ●/usr/local
●/usr/man ●/usr/sbin ●/usr/src
●/usr/local/bin ●/usr/local/etc ●/usr/local/games
●/usr/local/lib ●/usr/local/man ●
下面看几个whereis命令的例子。
●查grub及其帮助文件所在的目录。
[root@srv ~]# whereis grub
grub: /sbin/grub /f /usr/share/grub /usr/share/man/man8/
●查grub帮助文件所在的目录。
[root@srv ~]# whereis -m grub
grub: /usr/share/man/man8/
1.1.4 find:查文件或目录
find命令用于查文件或目录,该命令语法如下。
find [目录…] [-amin <;分钟>] [-anewer <;参数文件>] [-atime <24小时数>] [-cmin <;分钟>] [-cnewer <;参数文件>] [-ctime <24小时数>] [-depth] [-empty] [-exec <;执行命令>] [-fls <;列
表文件>] [-follow] [-fstype <;系统文件类型>] [-gid <;组编号>] [-group <;组名称>] [-nogroup] [-mmin <;分钟>] [-mtime <24小时数>] [-name <;查内容>] [-nogroup] [-nouser] [-perm <;权限数值>] [-size <;文件大小>] [-uid <;用户编号>] [-user <;用户名称>] [-nouser]
常用选项:
张勤●目录…:查指定目录的内容,如果不指定目录则查当前目录。
●-amin <;分钟>:查在指定时间曾被访问过的文件或目录,单位以分钟计算。
比如指定为“10”,find命令会查刚好在10分钟之前被访问过的文件或目录;
配置为“+10”,find命令会查10分钟以前被访问过后文件或目录;配置为“-10”,find命令会查在10分钟以内容被访问过的文件或目录。
●-anewer <;参数文件>:查访问时间比指定文件或目录的访问时间更接近现在
的文件或目录。
●-atime <24小时数>:查在指定时间曾访问过的文件或目录,单位以24小时
计算。比如配置为2,find命令会查刚好在48小时之前访问过的文件;配置为+2,find命令会查超过在48小时之前访问过的文件;配置为-2,find 命令会查在48小时之内访问过的文件。
●-cmin <;分钟>:查在指定时间曾被更改过权限属性的文件或目录,单位以分
钟计算。比如指定为“10”,find命令会查刚好在10分钟之前被更改过权限属性的文件或目录;配置为“+10”,find命令会查10分钟以前被更改过权限属性的文件或目录;配置为“-10”,find命令会查在10分钟以内容被更改过权限属性的文件或目录。
●-cnewer <;参数文件>:查更改时间比指定文件或目录的访问时间更接近现在
的文件或目录。
●-ctime <24小时数>:查在指定时间曾更改过权限属性的文件或目录,单位
以24小时计算。比如配置为2,find命令会查刚好在48小时之前更改过权限属性的文件;配置为+2,
find命令会查超过在48小时之前更改过权限属性的文件;配置为-2,find命令会查在48小时之内更改过权限属性的文件。
●-depth:从指定目录下最深层的子目录开始查。
●-empty:查文件大小为0字节的文件,或目录下没有任何子目录或文件的空
目录。
●-exec <;执行命令>:对到的文件或目录执行Shell命令。
●-fls <;列表文件>:把查结果保存为指定的列表文件。
●-follow:查时排除符号连接文件。
●-fstype <;系统文件类型>:只查该文件系统类型下的文件或目录。文件系统
类型可以是:“adfs”(Advanced Disk File System)、“affs”(Amiga Fast File
System)、“hfs”(Macintosh Filesystem)、“fat”(DOS File Allocation Table)、“msdos”、“umsdos”(Unix-Like MS-DOS)、“vfat”(Virtual File System)、“hpfs”
(High Performace File System)、“qnx4”(QNX filesystem)、“ext2”(Second Extended Filesystem)、“sysv”(System V Filesystem)、“ufs”(UNIX File System)、“efs”(IRIX File System)。
●-gid <;组编号>:查拥有组是符合指定用户组条件的文件或目录。比如配置为
500,find命令会查组编号为500的文件或目录;配置为+500,find命令会
查组编号大于500的文件或目录;配置为-500,find命令会查组编号小于
500的文件或目录。
●-group <;组名称>:查拥有组是指定用户组的文件或目录,也能以组编号指定。
●-nogroup:查拥有组不是“/etc/group”文件中存在的用户组的文件或目录。
●-mmin <;分钟>:查在指定时间曾被更改过内容的文件或目录,单位以分钟算。
比如指定为“10”,find命令会查刚好在10分钟之前被更改过内容的文件或
目录;配置为“+10”,find命令会查10分钟以前被更改过内容的文件或目
录;配置为“-10”,find命令会查在10分钟以内容被更改过内容的文件或
目录。
●-mtime <24小时数>:查在指定时间曾更改过内容的文件或目录,单位以24
小时计算。比如配置为2,find命令会查刚好在48小时之前更改过内容的
文件;配置为+2,find命令会查超过在48小时之前更改过内容的文件;配
置为-2,find命令会查在48小时之内更改过内容的文件。
●-name <;查内容>:查指定的内容,在查内容中使用“*”表示任意个字
符;使用“?”表示任何一个字符。比如查内容为“tony*zhang”,locate命
令会查所有以“tony”开始并且以“zhang”结尾的文件和目录。但文件或
目录名前面的“.”并不会并处理,比如“*charles*”并不会到“.charles”
的内容。
●-perm <;权限数值>:查符合指定权限数值的文件或目录。比如配置为“0700”,
find命令会查权限数值正好是“0700”的文件或目录;配置为“+0700”,find
命令会查权限数值大于是“0700”的文件或目录;配置为“-0700”,find命
令会查权限数值小于是“0700”的文件或目录。
●-size <;文件大小>:查符合指定大小的文件。文件大小单位可以是“c”表示
Byte;“k”表示KB。比如配置为“100k”,find命令会查文件大小正好是
100KB的文件;配置为“+100k”,find命令会查文件大小大于是100KB的
文件;配置为“-100k”,find命令会查文件大小小于是100KB的文件。
●-uid <;用户编号>:查所有者是符合指定用户条件的文件或目录。比如配置为
500,find命令会查用户编号为500的文件或目录;配置为+500,find命令
会查用户编号大于500的文件或目录;配置为-500,find命令会查用户编
号小于500的文件或目录。
●-user <;用户名称>:查所有者是指定用户的文件或目录,也能以用户编号指
定。
●-nouser:查所有者不是“/etc/passwd”文件中存在的用户的文件或目录。
find命令用于查符合条件的文件或目录,但find命令并不像local命令只在数据库中
find查命令的使用查、也不像which和whereis命令只在特定的目录中查,find可以在本机任何目录是实时的查,虽然find命令没有local命令执行速度快,但find是在硬盘是查不会出现文件或目录已存在但无法到的情况。其中“-exec <;执行命令>”选项可以对查到的内容执
行其他的Shell命令,格式如下,必须以“\;”结尾,“{}”可以表示到的内容。
find -exec <;执行命令> \;
下面看几个find命令的例子。
●列出当前目录下所有子目录及文件的名称。
[root@srv ~]# find
./.bash_history
●查当前目录及其子目录下以“D”开头的文件或目录。
[root@srv ~]# find -name D*
Desktop
●查当前目录及其子目录下以“D”或“M”开头的文件或目录,“-o”表示前
后二个条件中满足一个就显示。
[root@srv ~]# find -name D* -o -name M*
./.MultiGet/MultiGet-1.1.idx
./Desktop
●查“/share”目录及其子目录中文件系统为“vfat”并且名称为“jack.doc x”
的文件。
[root@srv ~]# find /share jack.docx -fstype vfat
●查“/share”目录及其子目录中文件系统不是“vfat”并且名称为“jack.docx”
的文件,“!”表示不能符合后面所指定的条件。
[root@srv ~]# find /share jack.docx ! -fstype vfat
●查根目录及其子目录中所有大于10M的文件。
[root@srv ~]# find / -size +10M
●查“/boot”目录及其子目录中所有以“.conf”结尾的文件,并把这些文件
复制到/tmp目录。
[root@srv ~]# find /boot -name *.conf -exec cp {} /tmp \;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论