linux/unix shell的find用法小练

来源:互联网 发布:泰拉瑞亚存档导入软件 编辑:程序博客网 时间:2024/05/17 03:12

好久之前的笔记了,搬出来和大家共享:

参数解释:

find用来查询某个目录下的文件几种常用的参数如下

-path 后面跟着要查询的路径

-prune 表示不再指定目录下查询,如果同时使用-depth,那么-prune命令将会被忽略

-name 要查询的文件名,可以使用正则表达式来查询

-mtime 查询近n天更改过的文件+表示大于n,-n表示n天以内

-另外还有-atime和-ctime用法类似

-newer file1 ! -newer file2 表示查询比file1新,比file2旧的文件

-exec 表示对查询出来的文件进行某些命令操作,如 -exec ls -l {} \;

-type 要查询的文件类型

! -type d 表示除了类型为目录的

-size 指定大小的文件+10c或-10c:大于10个字节的,或者小于10个字节的

演示:

[oracle@localhost testDir]$ cat find.sh echo "prune:" >> find.outfind . -path "./folder" -prune -o -name "file*" >> find.outecho "-name:" >> find.outfind . -name "[a-z][a-z]*" >> find.outecho "-mtime: +3" >> find.outfind . -mtime +3 >> find.outecho "-mtime: -3" >> find.outfind . -mtime -3 >> find.outecho "find newer then 1 and older then 2 files:">> find.outfind . -newer "test1.sh" ! -newer "test2.sh" -exec ls -l {} \; >> find.outecho "-type:" >> find.outfind . -type d >> find.outecho "except type:" >> find.outfind . ! -type d >> find.outecho "-size +10c :" >> find.outfind . -size +10c >> find.outecho "-size -10c :" >> find.outfind . -size -10c >> find.out

输出结果:

[oracle@localhost testDir]$ cat find.out prune:./folder-name:./blank_file./find.sh./shelltest.sh./folder./folder/file1./test1.log./test1.sh./test2.sh./main.sh./find.out-mtime: +3./find.sh./shelltest.sh./folder./folder/file1./test1.sh./test2.sh./main.sh-mtime: -3../blank_file./test1.log./find.outfind newer then 1 and older then 2 files:-rwxr-xr-x 1 oracle oinstall 100 Nov 10 23:08 ./test2.sh-rwxr-xr-x 1 oracle oinstall 26 Nov 10 22:30 ./main.sh-type:../folderexcept type:./blank_file./find.sh./shelltest.sh./folder/file1./test1.log./test1.sh./test2.sh./main.sh./find.out-size +10c :../blank_file./find.sh./shelltest.sh./folder./test1.log./test1.sh./test2.sh./main.sh./find.out-size -10c :./folder/file1