文件及内容处理 - which、find
1. which:查找二进制命令,按环境变量PATH路径查找
which命令的功能说明
which
命令用于查找文件。which
指令会在环境变量$PATH
设置的目录里查找符合条件的文件。which命令的语法格式
which
[options] [--] programname [...]which
[参数...] [命令]which命令的常用参数说明:
which
参数不多,表1为which
命令的参数及说明:表1:
which
命令的参数及说明
参数选项 | 解释说明 |
---|---|
-n<文件名长度> | 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。 |
-p<文件名长度> | 与-n参数相同,但此处的<文件名长度>包括了文件的路径。 |
-w | 指定输出时栏位的宽度。 |
-V | 显示版本信息。 |
which命令的实践操作
范例1:
which
查找二进制命令,按环境变量PATH
路径查找,显示所有路径
[[email protected] ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
范例2: 查找一个二进制命令的绝对路径,例如
cp
命令
[[email protected] ~]# which cp
alias cp=‘cp -i‘ <-->别名
/bin/cp <-->cp命令的绝对路径
2. find:从磁盘遍历查找文件或目录
find命令的功能说明
find
命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find
命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。find命令的语法格式
find
[-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]find
path -option [ -print ] [ -exec -ok command ] {} \;find命令的常用参数说明:
find
根据下列规则判断path
和expression
,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是expression
。如果path
是空字串则使用目前路径,如果expression
是空字串则使用expression
。,表1为find
命令的参数及说明:表1:
find
命令的参数及说明
expression
中可使用的选项有二三十个之多,在此只介绍最常用的部份。
参数选项 | 解释说明 |
---|---|
-mount, -xdev | 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件 |
-amin n | 在过去 n 分钟内被读取过 |
-anewer file | 比文件 file 更晚被读取过的文件 |
-atime n | 在过去n天内被读取过的文件 |
-cmin n | 在过去 n 分钟内被修改过 |
-cnewer file | 比文件 file 更新的文件 |
-ctime n | 在过去n天内被修改过的文件 |
-empty | 空的文件-gid n or -group name , gid 是 n 或是 group 名称是 name |
-ipath p, -path p | 路径名称符合 p 的文件,ipath 会忽略大小写 |
-name name, -iname name | 文件名称符合 name 的文件。iname 会忽略大小写 |
-size n | 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。 |
-type c | 文件类型是 c 的文件。常用的为d:表示目录,c:表示文件 |
-pid n | process id 是 n 的文件 |
find命令的实践操作
范例1: 将目前目录及其子目录下所有延伸档名是
c
的文件列出来。
find . -name "*.c"
范例2: 将目前目录其其下子目录中所有一般文件列出
find . -type f
范例3: 将目前目录及其子目录下所有最近 20 天内更新过的文件列出
find . -ctime -20
范例4: 查找
/var/log
目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们
find /var/log -type f -mtime +7 -ok rm {} \;
范例5: 查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件
find . -type f -perm 644 -exec ls -l {} \;
范例6: 为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径
find / -type f -size 0 -exec ls -l {} \;
今天就写到这里,有什么疑问或出现什么错误,随时欢迎大神们发表评论指点迷津
原文地址:https://blog.51cto.com/14068656/2407633