Linux find命令的用法实践(4)

在使用find命令时,可能希望先匹配所有的文件,再在子目录中查找。使用depth选项就可以使find命令这样做。这样做的一个原因就是,当在使用find命令向磁带上备份文件系统时,希望首先备份所有的文件,其次再备份子目录中的文件。 

实例1:find命令从文件系统的根目录开始,查找一个名为CON.FILE的文件。 

命令:

find / -name "CON.FILE" -depth -print

说明:

它将首先匹配所有的文件然后再进入子目录中查找

12.使用mount选项:

在当前的文件系统中查找文件(不进入其他文件系统),可以使用find命令的mount选项。

实例1:从当前目录开始查找位于本文件系统中文件名以XC结尾的文件 

命令:

find . -name "*.XC" -mount -print

13、

查当前目录下的所有普通文件,并在- e x e c选项中使用ls -l命令将它们列出

# find . -type f -exec ls -l {} \;
-rw-r–r–    1 root      root        34928 2003-02-25  ./conf/httpd.conf
-rw-r–r–    1 root      root        12959 2003-02-25  ./conf/magic
-rw-r–r–    1 root      root          180 2003-02-25  ./conf.d/README

Fetty:姓名、性别、年龄、具体职业不详,更无联系方式。 本人在博客园发布的文章(包括但不限于:简体中文、英文、标点符号、图像,以及以上任意组合等)均为敲打键盘、鼠标、屏幕等工具所造成结果,用于检验本人电脑、显示器的各项机械性能、光电性能,并不代表本人观点,如有雷同,不胜荣幸!

14、 ok选项


查询文件并询问是否要显示
[root@linuxidc class]# find  ./  -mtime  -1  -type f  -ok  ls -l  {} \; 
< ls … ./classDB.inc.php > ? y
-rw-r–r–    1 cnscn    cnscn      13709  1月 12 12:22 ./classDB.inc.php
[root@linuxidc class]# find  ./  -mtime  -1  -type f  -ok  ls -l  {} \; 
< ls … ./classDB.inc.php > ? n
[root@linuxidc class]#

find / -name filename -exec rm -rf {} \;
    find / -name filename -ok rm -rf {} \;

15、

查询并交给awk去处理
[root@linuxidc class]# who  |  awk  ’{print $1"\t"$2}’
cnscn    pts/0

=================================================
awk—grep—sed

[root@linuxidc class]# df  -k |  awk ‘{print $1}’ |  grep  -v  ’none’ |  sed  s"/\/dev\///g"
文件系统
sda2
sda1
[root@linuxidc class]# df  -k |  awk ‘{print $1}’ |  grep  -v  ’none’
文件系统
/dev/sda2
/dev/sda1


三、 find命令答疑

我用find / -name filename| rm -rf,不成功,请问为什么不成功?

find / -name filename -exec rm -rf {} \;
find . -name filename |rm -rf试一下{} 表示你找出来的结果。
\; 则相当于“宪法”,没什么说头,就是这么规定的,在 -exec 后面需要一个表示该命令终结的的符号。可以在 man find 中找到答案。
要让rm识别find的结果,如下:
find / -name filename |xargs rm -rf
之所以find . -name filename |rm -rf不通过,是因为rm命令不接受从标准输入传过来的指令
查找含特定字符串的文件
例如查找当前目录下含有"the string you want find…"字符串的文件:
$find . -type f -exec grep “the string you want find…” {} ; -print

四、自己的使用经历

1、find输出几个文件的具体修改时间

[linuxidc@xingzhengzhongxin Exp]$ ls Para.1106.* Para.1107.* Para.1109.* -al
-rw-r--r--  1 linuxidc aas  5178 Apr 11 22:30 Para.1106.00000227.77.00
-rw-r--r--  1 linuxidc aas 22043 Apr 11 22:30 Para.1107.00000227.77.00
-rw-r--r--  1 linuxidc aas  7410 Apr 11 22:30 Para.1109.00000227.77.00

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/16058.html