Linux find 命令使用
1. find /path -name filename
filename可以是一个具体的名,或者可以这样“*string*”,其中星号表明任意字符,如要查找swapfile但又不知道该文件完整 的名称只知道apfi,那么你可以输入:*apfi*,这样就可以了,同理,如果输入:swap*,那么只查找以swap开头的文件名。
2. find /path -size +1000000c
-size: 表示要用文件大小来进行查找
+1000000c: 表示查找文件大小,+表示大于1000000byte,c表示byte(字节),也可以-,表示小于1000000byte,当然了,文件大小由你自己来指定。
3. find /path -amin -5 //查找在系统中最后5分钟访问的文件
find /path -mmin -5 //查找在系统中最后5分钟修改的文件
find /path -atime -1 //查找在系统中最后1小时访问的文件
find /path -mtime -1 //查找在系统中最后1小时修改的文件
find /path -empty //查找在系统中空的文件或文件夹
find /path -user dotnetlee //查找在系统中属于dotnetlee用户的文件
find /path -nouser //查找在系统中已经没有属主的文件
4. 使用逻辑运算符:or、 !、 and
find /path -user dotnetlee -o -user AnotherUser
//查找在系统中属于dotnetlee用户的文件或者属于AnotherUser用户的文件
find /path ! -user AnotherUser
//查找在系统中不属于AnotherUser用户的文件
find /path -size -1000000c -a -mtime -1
//查找在系统中小于1000000byte并最后1小时修改的文件
5. find还可以联合系统自有的一些来执行,如:
find /path -name filename -ls
//查找文件并列出该文件的属性信息
注:
find [起始目录] 寻找条件 操作
-prune
If -depth is not given, true; if the file is a directory, do not descend into it. If -depth is given, false; no effect.
prune 删除;削减
$ find ./ -name "*.txt"
./spi.txt
./cmmb/i2c.txt
./cmmb/gpio.txt
./cmmb/spi.txt
$ find ./ -path "./cmmb" -prune -o -name "*.txt" -print
./spi.txt
在当前目录下,忽略./cmmb目录,寻找名为"*.txt"的文件
find命令的exec参数
-----------------------------------------------
前言:最近几天使用find的高级功能,但执行到 -exec命令的时候总是提示错误
信息如下:“find: missing argument to `-ok’ ”,花了点时间,研究了下帮助(man),终于是搞清楚了。
说明:find命令,配合-exec参数,可以对查询的文件进行进一步的操作,可以得到很多有用的功能,比如说文件包含特定字符串的查询等,要了解这个功能,最简单直接的就是看find命令帮助,列出
-exec command {} ;
Execute command; true if 0 status is returned. All following arguments to find are taken to be arguments to the command until an argument consisting of ‘;’ is encountered. The string ‘{}’ is replaced by the current file name being processed everywhere it occurs in the arguments to the command, not just in arguments where it is alone, as in some versions of find. Both of these constructions might need to be escaped (with a ‘\’) or quoted to protect them from expansion by the shell. See the EXAMPLES section for examples of the use of the ‘-exec’ option. The specified command is run once for each matched file. The command is executed in the starting directory. There are unavoidable security problems surrounding use of the -exec option; you should use the -execdir option instead.
其实只要读懂这段话就理解了
-exec参数后面跟的是command命令,注意点如下:
command命令的终止,使用‘;’(分号)来判定,在后面必须有一个‘;’
‘{}’,使用{}来表示文件名,也就是find前面处理过程中过滤出来的文件,用于command命令进行处理
特别强调,对于不同的系统,直接使用分号可能会有不同的意义, 使用转义符 ‘\’在分号前明确说明,对于前面我们遇到的问题,主要就是这个原因引起的!
举例:
1.查询所有保护字符串“Hello”的文件
find / -exec grep "Hello" {} \;
2.删除所有临时文件
find / -name "*.tmp" -exec rm -f {} \;
filename可以是一个具体的名,或者可以这样“*string*”,其中星号表明任意字符,如要查找swapfile但又不知道该文件完整 的名称只知道apfi,那么你可以输入:*apfi*,这样就可以了,同理,如果输入:swap*,那么只查找以swap开头的文件名。
2. find /path -size +1000000c
-size: 表示要用文件大小来进行查找
+1000000c: 表示查找文件大小,+表示大于1000000byte,c表示byte(字节),也可以-,表示小于1000000byte,当然了,文件大小由你自己来指定。
3. find /path -amin -5 //查找在系统中最后5分钟访问的文件
find /path -mmin -5 //查找在系统中最后5分钟修改的文件
find /path -atime -1 //查找在系统中最后1小时访问的文件
find /path -mtime -1 //查找在系统中最后1小时修改的文件
find /path -empty //查找在系统中空的文件或文件夹
find /path -user dotnetlee //查找在系统中属于dotnetlee用户的文件
find /path -nouser //查找在系统中已经没有属主的文件
4. 使用逻辑运算符:or、 !、 and
find /path -user dotnetlee -o -user AnotherUser
//查找在系统中属于dotnetlee用户的文件或者属于AnotherUser用户的文件
find /path ! -user AnotherUser
//查找在系统中不属于AnotherUser用户的文件
find /path -size -1000000c -a -mtime -1
//查找在系统中小于1000000byte并最后1小时修改的文件
5. find还可以联合系统自有的一些来执行,如:
find /path -name filename -ls
//查找文件并列出该文件的属性信息
注:
find [起始目录] 寻找条件 操作
-prune
If -depth is not given, true; if the file is a directory, do not descend into it. If -depth is given, false; no effect.
prune 删除;削减
$ find ./ -name "*.txt"
./spi.txt
./cmmb/i2c.txt
./cmmb/gpio.txt
./cmmb/spi.txt
$ find ./ -path "./cmmb" -prune -o -name "*.txt" -print
./spi.txt
在当前目录下,忽略./cmmb目录,寻找名为"*.txt"的文件
find命令的exec参数
-----------------------------------------------
前言:最近几天使用find的高级功能,但执行到 -exec命令的时候总是提示错误
信息如下:“find: missing argument to `-ok’ ”,花了点时间,研究了下帮助(man),终于是搞清楚了。
说明:find命令,配合-exec参数,可以对查询的文件进行进一步的操作,可以得到很多有用的功能,比如说文件包含特定字符串的查询等,要了解这个功能,最简单直接的就是看find命令帮助,列出
-exec command {} ;
Execute command; true if 0 status is returned. All following arguments to find are taken to be arguments to the command until an argument consisting of ‘;’ is encountered. The string ‘{}’ is replaced by the current file name being processed everywhere it occurs in the arguments to the command, not just in arguments where it is alone, as in some versions of find. Both of these constructions might need to be escaped (with a ‘\’) or quoted to protect them from expansion by the shell. See the EXAMPLES section for examples of the use of the ‘-exec’ option. The specified command is run once for each matched file. The command is executed in the starting directory. There are unavoidable security problems surrounding use of the -exec option; you should use the -execdir option instead.
其实只要读懂这段话就理解了
-exec参数后面跟的是command命令,注意点如下:
command命令的终止,使用‘;’(分号)来判定,在后面必须有一个‘;’
‘{}’,使用{}来表示文件名,也就是find前面处理过程中过滤出来的文件,用于command命令进行处理
特别强调,对于不同的系统,直接使用分号可能会有不同的意义, 使用转义符 ‘\’在分号前明确说明,对于前面我们遇到的问题,主要就是这个原因引起的!
举例:
1.查询所有保护字符串“Hello”的文件
find / -exec grep "Hello" {} \;
2.删除所有临时文件
find / -name "*.tmp" -exec rm -f {} \;
顶(0)
踩(0)
上一篇:ubuntu 安装java环境
下一篇:ubuntu 安装 amule
- 最新评论