常用命令

find  (目录)   [-type d | f]  (文件夹 | 文件)   -name   (名称,可使用正则表达式)

find  /root  -name "*core"

find /root -type d -name "*core"    文件夹

find /root -type f -name "*core"    文件

find /root -type f -path  "*core"    路径

find /root  -name "*core"  -delete    查到后删除

find /root -size   +20M (-20M)    大于20M(小于20M)

find /root -name "*core"  -exec  ls  {} \;    对查找后的文件执行ls操作

壹——主要内容

1. 用文件名查找文件

2.用文件名查找文件,忽略大小写

3. 使用mindepth和maxdepth限定搜索指定目录的深度

4. 在find命令查找到的文件上执行命令

5. 相反匹配

6. 使用inode编号查找文件

7. 根据文件权限查找文件

8. 找到home目录及子目录下所有的空文件(0字节文件)

9. 查找5个最大的文件

10. 查找5个最小的文件

11. 使用-type查找指定文件类型的文件

12. 通过和其他文件比较修改时间查找文件

13. 通过文件大小查找文件

14. 给常用find操作取别名

15. 用find命令删除大型打包文件

16.找到在1个小时内被更改的文件

17.找到1个小时内被访问过的文件

18.查找一个小时内状态被改变的文件

19.搜索仅仅限定于文件,不显示文件夹

20.仅仅查找非隐藏的文件(不显示隐藏文件)

21.查找文件修改时间在某一文件修改后的文件

22.查找文件访问时间在某一文件的修改时间之后的文件

23.查找状态改变时间在某个文件修改时间之后的文件:

24.在find命令输出上使用 ls -l,列举出1小时内被编辑过的文件的详细信息

25.仅仅在当前文件系统中搜索

26.在同一个命令中使用多个{}

27. 使用多个{}实例

28.将错误重定向到/dev/nul

29.将文件名中的空格换成下划线

30.在find结果中同时执行两条命令

31、常用指令

贰——find命令使用总结

一、基于name查询文件

find  (目录)   [-type d | f]  (文件夹 | 文件)   -name   (名称,可使用正则表达式)

  1. # find . -name tecmint.txt
  2. # find /home -name tecmint.txt
  3. # find /home -iname tecmint.txt
  4. # find / -type d -name Tecmint
  5. # find . -type f -name tecmint.php
  6. # find . -type f -name "*.php"

二、基于权限查询文件

  1. # find . -type f -perm -print
  2. # find / -type f ! -perm
  3. # find / -perm
  4. # find / -perm
  5. # find / -perm /u=s
  6. # find / -perm /g+s
  7. # find / -perm /u=r
  8. # find / -perm /a=x
  9. # find / -type f -perm -print -exec chmod {};
  10. # find / -type d -perm -print -exec chmod {};
  11. # find . -type f -name "tecmint.txt" -execrm -f {} ;
  12. # find . -type f -name "*.txt" -exec rm -f{} ;
  13. # find . -type f -name "*.mp3" -exec rm -f{} ;
  14. # find /tmp -type f -empty
  15. # find /tmp -type d -empty
  16. # find /tmp -type f -name ".*"

三、基于用户和组查询文件

  1. # find / -user root -name tecmint.txt
  2. # find /home -user tecmint
  3. # find /home -group developer
  4. # find /home -user tecmint -iname "*.txt"

四、基于时间查询文件或目录

  1. # find / -mtime
  2. # find / -atime
  3. # find / -mtime + –mtime -
  4. # find / -cmin -
  5. # find / -mmin -
  6. # find / -amin -

五、基于大小查询文件或目录

  1. # find / -size 50M
  2. # find / -size +50M -size -100M
  3. # find / -size +100M -exec rm -rf {} ;
  4. # find / -type f -name *.mp3 -size +10M -exec rm {} ;

叁——详细信息

除了在一个目录结构下查找文件这种基本的操作,你还可以用find命令实现一些实用的操作,使你的命令行之旅更加简易。本文将介绍31种无论是于新手还是老鸟都非常有用的Linux find命令。

首先,在你的home目录下面创建下面的空文件,来测试下面的find命令示例。

  1. # vim create_sample_files.sh
  2. touch MybashProgram.sh
  3. touch mycprogram.c
  4. touch MyCProgram.c
  5. touch Program.c
  6. mkdir backup
  7. cd backup
  8. touch MybashProgram.sh
  9. touch mycprogram.c
  10. touch MyCProgram.c
  11. touch Program.c
  12. chmod +x create_sample_files.sh
  13. # ./create_sample_files.sh
  14. # ls -R backup
  15. backup/:
  16. MybashProgram.sh mycprogram.c MyCProgram.c Program.c

1. 用文件名查找文件

这是find命令的一个基本用法。下面的例子展示了用MyCProgram.c作为查找名在当前目录及其子目录中查找文件的方法。

  1. # find -name "MyCProgram.c"
  2. ./backup/MyCProgram.c
  3. ./MyCProgram.c

2.用文件名查找文件,忽略大小写

这是find命令的一个基本用法。下面的例子展示了用MyCProgram.c作为查找名在当前目录及其子目录中查找文件的方法,忽略了大小写。

  1. # find -iname "MyCProgram.c"
  2. ./mycprogram.c
  3. ./backup/mycprogram.c
  4. ./backup/MyCProgram.c
  5. ./MyCProgram.c

3. 使用mindepth和maxdepth限定搜索指定目录的深度

在root目录及其子目录下查找passwd文件。

  1. # find / -namepasswd
  2. ./usr/share/doc/nss_ldap-/pam.d/passwd
  3. ./usr/bin/passwd
  4. ./etc/pam.d/passwd
  5. ./etc/passwd

在root目录及其1层深的子目录中查找passwd. (例如root —level 1, and one sub-directory — level 2)

  1. # find -maxdepth -name passwd
  2. ./etc/passwd

在root目录下及其最大两层深度的子目录中查找passwd文件. (例如 root — level 1, and two sub-directories — level 2 and 3 )

  1. # find / -maxdepth -name passwd
  2. ./usr/bin/passwd
  3. ./etc/pam.d/passwd
  4. ./etc/passwd

在第二层子目录和第四层子目录之间查找passwd文件。

  1. # find -mindepth -maxdepth -name passwd
  2. ./usr/bin/passwd
  3. ./etc/pam.d/passwd

4. 在find命令查找到的文件上执行命令

下面的例子展示了find命令来计算所有不区分大小写的文件名为“MyCProgram.c”的文件的MD5验证和。{}将会被当前文件名取代。

  1. # find -iname "MyCProgram.c" -exec md5sum {} \ ;
  2. d41d8cd98f00b204e9800998ecf8427e ./mycprogram.c
  3. d41d8cd98f00b204e9800998ecf8427e ./backup/mycprogram.c
  4. d41d8cd98f00b204e9800998ecf8427e ./backup/MyCProgram.c
  5. d41d8cd98f00b204e9800998ecf8427e ./MyCProgram.c

5. 相反匹配

显示所有的名字不是MyCProgram.c的文件或者目录。由于maxdepth是1,所以只会显示当前目录下的文件和目录。

  1. # find -maxdepth -not -iname "MyCProgram.c"
  2. ./MybashProgram.sh
  3. ./create_sample_files.sh
  4. ./backup
  5. ./Program.c

6. 使用inode编号查找文件

任何一个文件都有一个独一无二的inode编号,借此我们可以区分文件。创建两个名字相似的文件,例如一个有空格结尾,一个没有。

  1. #touch "test-file-name"
  2. # touch "test-file-name "
  3. [Note: There is aspace at the end]
  4. # ls - test*
  5. -rw-r--r-- zhiwei zhiwei 11 : test-file-name
  6. -rw-r--r-- zhiwei zhiwei 11 : 'test-file-name '

从ls的输出不能区分哪个文件有空格结尾。使用选项-i,可以看到文件的inode编号,借此可以区分这两个文件。

  1. ls -i1 test*
  2. -rw-r--r-- zhiwei zhiwei 11 : test-file-name
  3. -rw-r--r-- zhiwei zhiwei 11 : 'test-file-name '

你可以如下面所示在find命令中指定inode编号。在此,find命令用inode编号重命名了一个文件。

  1. find -inum -exec mv {} new-test-file-name \;
  2. # ls -i1 *test*
  3. -rw-r--r-- zhiwei zhiwei 11 : new-test-file-name
  4. -rw-r--r-- zhiwei zhiwei 11 : test-file-name

你可以在你想对那些像上面一样的糟糕命名的文件做某些操作时使用这一技术。例如,名为file?.txt的文件名字中有一个特殊字符。若你想执行“rm file?.txt”,下面所示的所有三个文件都会被删除。所以,采用下面的步骤来删除”file?.txt”文件。

  1. ls
  2. file1.txt file2.txt file?.txt

找到每一个文件的inode编号。

  1. ls -i1
  2. file1.txt
  3. file2.txt
  4. file?.txt

如下所示:使用inode编号来删除那些具有特殊符号的文件名。

  1. find -inum -exec rm {} \;
  2. # ls
  3. file1.txt file2.txt
  4. [Note: The file withname "file?.txt" is now removed]

7. 根据文件权限查找文件

下面的操作时合理的:

找到具有指定权限的文件

忽略其他权限位,检查是否和指定权限匹配

根据给定的八进制/符号表达的权限搜索

此例中,假设目录包含以下文件。注意这些文件的权限不同。

  1. ls -l
  2. total
  3. -rwxrwxrwx rootroot -- : all_for_all
  4. -rw-r--r-- rootroot -- : everybody_read
  5. ---------- rootroot -- : no_for_all
  6. -rw------- rootroot -- : ordinary_file
  7. -rw-r----- rootroot -- : others_can_also_read
  8. ----r----- rootroot -- : others_can_only_read

找到具有组读权限的文件。使用下面的命令来找到当前目录下对同组用户具有读权限的文件,忽略该文件的其他权限。

  1. find . -perm -g=r -type f -exec ls -l {} \;
  2. -rw-r--r-- rootroot -- : ./everybody_read
  3. -rwxrwxrwx rootroot -- : ./all_for_all
  4. ----r----- rootroot -- : ./others_can_only_read
  5. -rw-r----- rootroot -- : ./others_can_also_read

找到对组用户具有只读权限的文件。

  1. find . -perm g=r- type f -exec ls -l {} \;
  2. ----r----- rootroot -- : ./others_can_only_read

找到对组用户具有只读权限的文件(使用八进制权限形式)。

  1. find . -perm -type f -exec ls -l {} \;
  2. ----r----- rootroot -- : ./others_can_only_read

8. 找到home目录及子目录下所有的空文件(0字节文件)

下面命令的输出文件绝大多数都是锁定文件盒其他程序创建的place hoders

  1. find ~ -empty; 只列出你home目录里的空文件。
  2. find . -maxdepth -empty; 只列出当前目录下的非隐藏空文件。
  3. find . -maxdepth -empty -not -name ".*"; 只列出当前目录下的隐藏空文件。

9. 查找5个最大的文件

下面的命令列出当前目录及子目录下的5个最大的文件。这会需要一点时间,取决于命令需要处理的文件数量。

  1. find . -type f -exec ls -s {} \; | sort -n -r | head -;列出当前目录及子目录下的5个最大的文件

10. 查找5个最小的文件

方法同查找5个最大的文件类似,区别只是sort的顺序是降序。

  1. find . -type f -execls -s {} ; | sort -n | head -

上面的命令中,很可能你看到的只是空文件(0字节文件)。如此,你可以使用下面的命令列出最小的文件,而不是0字节文件。

  1. find . -not -empty -type f -exec ls -s {} ; | sort -n |head -

11. 使用-type查找指定文件类型的文件

  1. find . -type s; 只查找socket文件
  2. find . -type d; 查找所有的目录
  3. find . -type f; 查找所有的一般文件
  4. find . -type f -name".*"; 查找所有的隐藏文件
  5. find -type d -name".*"; 查找所有的隐藏目录

12. 通过和其他文件比较修改时间查找文件

显示在指定文件之后做出修改的文件。下面的find命令将显示所有的在ordinary_file之后创建修改的文件。

  1. ls -lrt
  2. total
  3. -rw-r----- rootroot -- : others_can_also_read
  4. ----r----- rootroot -- : others_can_only_read
  5. -rw------- rootroot -- : ordinary_file
  6. -rw-r--r-- rootroot -- : everybody_read
  7. -rwxrwxrwx rootroot -- : all_for_all
  8. ---------- rootroot -- : no_for_all
  9. # find -newer ordinary_file
  10. ./everybody_read
  11. ./all_for_all
  12. ./no_for_all

13. 通过文件大小查找文件

使用-size选项可以通过文件大小查找文件。

  1. find ~ -size +100M; 查找比指定文件大的文件
  2. find ~ -size -100M; 查找比指定文件小的文件
  3. find ~ -size 100M; 查找符合给定大小的文件
  4. 注意: 指比给定尺寸小,+ 指比给定尺寸大。没有符号代表和给定尺寸完全一样大。

14. 给常用find操作取别名

若你发现有些东西很有用,你可以给他取别名。并且在任何你希望的地方执行。

常用的删除a.out文件。

  1. alias rmao="find . -iname a.out -exec rm {} \;"
  2. # rmao

删除c程序产生的core文件。

  1. alias rmc="find. -iname core -exec rm {} ;"
  2. # rmc

15. 用find命令删除大型打包文件

下面的命令删除大于100M的*.zip文件。

  1. find / -type f -name*.zip -size +100M -exec rm -i {} \;"

用别名rm100m删除所有大雨100M的*.tar文件。使用同样的思想可以创建rm1g,rm2g,rm5g的一类别名来删除所有大于1G,2G,5G的文件。

  1. alias rm100m="find / -type f -name *.tar -size +100M -exec rm -i {} ;"
  2. # alias rm1g="find / -type f -name *.tar -size +1G -exec rm -i {} ;"
  3. # alias rm2g="find / -type f -name *.tar -size +2G -exec rm -i {} ;"
  4. # alias rm5g="find / -type f -name *.tar -size +5G -exec rm -i {} ;"
  5. # rm100m
  6. # rm1g
  7. # rm2g
  8. # rm5g

基于访问/修改/更改时间查找文件

你可以找到基于以下三个文件的时间属性的文件。

访问时间的文件。文件访问时,访问时间得到更新。

的文件的修改时间。文件内容修改时,修改时间得到更新。

更改文件的时间。更改时间时,被更新的inode数据的变化。

在下面的例子中,min选项之间的差异和时间选项是参数。

分论点将它的参数为分钟。例如,60分钟(1小时)= 60分钟。时间参数,将它的参数为24小时。例如,时间2 = 2 * 24小时(2天)。虽然这样做的24个小时计算,小数部分都将被忽略,所以25小时为24小时,和47小时取为24小时,仅48小时为48小时。要获得更清晰的参考atime的部分find命令的手册页。

16.找到在1个小时内被更改的文件

想要通过文件修改时间找出文件,可以使用参数 -mmin -mtime。下面是man手册中有关mmin和mtime的定义。

-mmin n 文件最后一次修改是在n分钟之内

-mtime n 文件最后一次修改是在 n*24小时之内(译者注:也就是n天了呗)

执行下面例子中的命令,将会找到当前目录以及其子目录下,最近一次修改时间在1个小时(60分钟)之内的文件或目录

  1. # find . -amin -

同样的方式,执行下面例子中的命令,将会找到24小时(1天)内被访问了的文件(文件系统根目录 / 下)

  1. # find / -atime -

17.找到1个小时内被访问过的文件

想要通过文件访问时间找出文件,可以使用参数 -amin -atime。下面是man手册中有关amin和atime的定义。

-amin n 文件最后一次访问是在n分钟之内

-atime n 文件最后一次访问是在 n*24小时之内

执行下面例子中的命令,将会找到当前目录以及其子目录下,最近一次访问时间在1个小时(60分钟)之内的文件或目录

  1. # find . -amin -

同样的方式,执行下面例子中的命令,将会找到24小时(1天)内被访问了的文件(文件系统根目录 / 下)

  1. # find / -atime -

18.查找一个小时内状态被改变的文件

(注意:这里的改变更第1个例子的更改文件内容时间是不同概念,这里是更改的是文件inode的数据,比如文件的权限,所属人等等信息)

要查找文件的inode的更改时间,使用-cmin和-ctime选项

-cmin n  文件的状态在n分钟内被改变

-ctime n  文件状态在n*24小时内(也就是n天内)被改变

(注意:如果上面的n为-n形式,则表示n分钟/天之内,n为+n则表示n分钟/天之前)

下面的例子在当前目录和其子目录下面查找一个小时内文件状态改变的文件(也就是60分钟内):

  1. # find . -cmin -

同样的道理,下面的例子在根目录/及其子目录下一天内(24小时内)文件状态被改变的文件列表:

  1. # find / -ctime -

19.搜索仅仅限定于文件,不显示文件夹

上面的例子搜索出来不仅仅有文件,还会显示文件夹。因为当一个文件被访问的时候,它所处的文件夹也会被访问,如果你对文件夹不感兴趣,那么可以使用 -type f 选项

下面的例子会显示30分钟内被修改过的文件,文件夹不显示:

  1. # find/etc/sysconfig -amin -
  2.  
  3. .
  4.  
  5. ./console
  6.  
  7. ./network-scripts
  8.  
  9. ./i18n
  10.  
  11. ./rhn
  12.  
  13. ./rhn/clientCaps.d
  14.  
  15. ./networking
  16.  
  17. ./networking/profiles
  18.  
  19. ./networking/profiles/default
  20.  
  21. ./networking/profiles/default/resolv.conf
  22.  
  23. ./networking/profiles/default/hosts
  24.  
  25. ./networking/devices
  26.  
  27. ./apm-scripts
  28.  
  29. [注: 上面的输出包含了文件和文件夹]
  30.  
  31. # find/etc/sysconfig -amin - -type f
  32.  
  33. ./i18n
  34.  
  35. ./networking/profiles/default/resolv.conf
  36.  
  37. ./networking/profiles/default/hosts
  38.  
  39. [注: 上面的输出仅仅包含文件]

20.仅仅查找非隐藏的文件(不显示隐藏文件):

如果我们查找的时候不想隐藏文件也显示出来,可以使用下面的正则式查找:

下面的命令会显示当前目录及其子目录下15分钟内文件内容被修改过的文件,并且只列出非隐藏文件。也就是说,以.开头的文件时不会显示出来的

  1. # find . -mmin -( ! -regex ".*/..*" )

基于文件比较的查找命令

我们平时通过更别的东西进行比较,会更容易记住一些事情。比如说我想找出在我编辑test文件之后编辑过的文件。你可以通过test这个文件的编辑时间作为比较基准去查找之后编辑过的文件:

21.查找文件修改时间在某一文件修改后的文件:

语法: find -newer FILE

下面的例子显示在/etc/passwd修改之后被修改过的文件。对于系统管理员,想知道你新增了一个用户后去跟踪系统的活动状态是很有帮助的(万一那新用户不老实,一上来就乱搞,你很快就知道了 ^_^):

  1. # find -newer /etc/passwd

22.查找文件访问时间在某一文件的修改时间之后的文件:

  1. # find -newer /etc/passwd

下面的例子显示所有在/etc/hosts文件被修改后被访问到的文件。如果你新增了一个主机/端口记录在/etc/hosts文件中,你很可能很想知道在那之后有什么文件被访问到了,下面是这个命令:

  1. # find -anewer /etc/hosts

23.查找状态改变时间在某个文件修改时间之后的文件:

语法: find -cnewer FILE

下面的例子显示在修改文件/etc/fstab之后所有文件状态改变过的文件。如果你在/etc/fstab新增了一个挂载点,你很可能想知道之后哪些文件的状态发生了改变,这时候你可以使用如下命令:

  1. # find -cnewer/etc/fstab

在查找到的文件列表结果上直接执行命令:

这之前你已经看到了如果通过find命令去查找各种条件的文件列表。如果你对这些find命令还不熟悉,我建议你看完上面的第一部分

接下来这部分我们向你介绍如果在find命令上执行各种不同的命令,也就是说如何去操作find命令查找出来的文件列表。

我们能在find命令查找出来的文件名列表上指定任意的操作:

  1. # find <CONDITIONto Find files> -exec <OPERATION> ;

其中的OPERATION可以是任意的命令,下面列举一下比较常用的:

rm 命令,用于删除find查找出来的文件

mv 命令,用于重命名查找出的文件

ls -l 命令,显示查找出的文件的详细信息

md5sum,对查找出的文件进行md5sum运算,可以获得一个字符串,用于检测文件内容的合法性

wc 命令,用于统计计算文件的单词数量,文件大小等待

执行任何Unix的Shell命令

执行你自己写的shell脚本,参数就是每个查找出来的文件名

24.在find命令输出上使用 ls-l,列举出1小时内被编辑过的文件的详细信息

  1. # find -mmin -
  2.  
  3. ./cron
  4.  
  5. ./secure
  6.  
  7. # find -mmin - -exec ls -l {} ;
  8.  
  9. -rw------- root root Jun : ./cron
  10.  
  11. -rw------- root root Jun : ./secure

25.仅仅在当前文件系统中搜索

系统管理员有时候仅仅想在/挂载的文件系统分区上搜索,而不想去搜索其他的挂载分区,比如/home/挂载分区。如果你有多个分区被挂载了,你想在/下搜索,一般可以按下面的这样做

下面这个命令会搜索根目录/及其子目录下所有.log结尾的文件名。如果你有多个分区在/下面,那么这个搜索会去搜索所有的被挂载的分区:

  1. # find / -name "*.log"

如果我们使用-xdev选项,那么仅仅会在在当前文件系统中搜索,下面是在xdev的manpage上面找到的一段-xdev的定义:

-xdev Don’t descenddirectories on other filesystems.

下面的命令会在/目录及其子目录下搜索当前文件系统(也就是/挂载的文件系统)中所有以.log结尾的文件,也就是说如果你有多个分区挂载在/下面,下面的搜索不会去搜索其他的分区的(比如/home/)

  1. # find / -xdev -name "*.log"

26.在同一个命令中使用多个{}

linux手册说命令中只能使用一个{},不过你可以像下面这样在同一个命令中使用多个{}

  1. # find -name" *.txt" cp {} {} .bkup ;

注意,在同一个命令中使用这个{}是可以的,但是在不同的命令里就不行了,也就是说,如果你想象下面这样重命名文件是行不通的

find -name"*.txt" -exec mv {} `basename {} .htm`.html ;

27. 使用多个{}实例

你可以像下面这样写一个shell脚本去模拟上面那个重命名的例子

# mv "$1""`basename "$1" .htm`.html"

上面的双引号是为了防止文件名中出现的空格,不加的话会有问题。然后你把这个shell脚本保存为mv.sh,你可以像下面这样使用find命令了

find -name"*.html" -exec ./mv.sh '{}' ;

所以,任何情况下你在find命令执行中想使用同一个文件名多次的话,先写一个脚本,然后在find中通过-exec执行这个脚本,把文件名参数传递进去就行,这是最简单的办法

28.将错误重定向到/dev/nul

重定向错误输出一般不是什么好的想法。一个有经验的程序员懂得在终端显示错误并及时修正它是很重要的。

尤其是在find命令中重定向错误不是个好的实践。但是如果你确实不想看到那些烦人的错误,想把错误都重定向到null设备中(也就是linux上的黑洞装置,任何丢进去的东西消失的无影无踪了)。你可以像下面这样做

find -name"*.txt" 2>>/dev/null

有时候这是很有用的。比如,如果你想通过你自己的账号在/目录下查找所有的*.conf文件,你会得到很多很多的”Permission denied”的错误消息,就像下面这样:

$ find / -name"*.conf"

/sbin/generate-modprobe.conf

find:/tmp/orbit-root: Permission denied

find:/tmp/ssh-gccBMp5019: Permission denied

find:/tmp/keyring-5iqiGo: Permission denied

find:/var/log/httpd: Permission denied

find: /var/log/ppp:Permission denied

/boot/grub/grub.conf

find:/var/log/audit: Permission denied

find:/var/log/squid: Permission denied

find:/var/log/samba: Permission denied

find:/var/cache/alchemist/printconf.rpm/wm: Permission denied

[Note: There are twovalid *.conf files burned in the "Permission denied" messages]

你说烦人不?所以,如果你只想看到find命令真实的查找结果而不是这些”Permission denied”错误消息,你可以将这些错误消息重定向到/dev/null中去

$ find / -name"*.conf" 2>>/dev/null

/sbin/generate-modprobe.conf

/boot/grub/grub.conf

[Note: All the"Permission denied" messages are not displayed]

29.将文件名中的空格换成下划线

你从网上下载下来的音频文件的文件名很多都带有空格。但是带有空格的文件名在linux(类Unix)系统里面是很不好的。你可以使用find然后后面加上rename命令的替换功能去重命名这些文件,将空格转换成下划线

下面显示怎样将所有mp3文件的文件名中的空格换成_

$ find . -type f-iname “*.mp3″ -exec rename “s/ /_/g” {} ;

30.在find结果中同时执行两条命令

在find的man page页面中,下面是一次文件查找遍历中使用两条命令的语法举例

下面的find命令的例子,遍历文件系统一次,列出拥有setuid属性的文件和目录,写入/root/suid.txt文件,如果文件大小超过100M,将其记录到/root/big.txt中

# find / ( -perm-4000 -fprintf /root/suid.txt '%#m %u %p ' ) ,

( -size +100M-fprintf /root/big.txt '%-10s %p ' )

31、常用指令

  1. find /backup/rman_backup/ -mtime + -exec rm -rf {} ; 删除45天前的文件
  2.  
  3. find /tmp -mtime +-size +1M -exec rm -rf {} ;
  4.  
  5. find -mtime + -nameabc* -exec rm -rf {} ;
  6.  
  7. find /tmp -mtime +-size +1M -ok rm -rf {} ;

linux中find命令的使用详解(转载)的更多相关文章

  1. Linux中fork()函数详解(转载)

    [原创地址]http://blog.csdn.net/jason314/article/details/5640969 [转载地址]http://www.cnblogs.com/bastard/arc ...

  2. Linux中/proc目录下文件详解

    转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统 ...

  3. Linux中/proc目录下文件详解(转贴)

      转载:http://www.sudu.cn/info/index.php?op=article&id=302529   Linux中/proc目录下文件详解(一) 声明:可以自由转载本文, ...

  4. Linux中Nginx安装与配置详解

    转载自:http://www.linuxidc.com/Linux/2016-08/134110.htm Linux中Nginx安装与配置详解(CentOS-6.5:nginx-1.5.0). 1 N ...

  5. Linux下nl命令的用法详解

    Linux中nl命令和cat命令很像,不过nl命令会打上行号,属于比较不常用的命令,下面随小编一起来了解下这个鲜为人知的nl命令吧. nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文 ...

  6. Linux中date命令的各种实用方法--转载

    在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,自己也曾经为时间的各种表示方法和如何修改时间而困惑,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的 ...

  7. Linux中搭建一个ftp服务器详解

    来源:Linux社区  作者:luzhi1024 详解Linux中搭建一个ftp服务器. ftp工作是会启动两个通道:控制通道 , 数据通道在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种 ...

  8. Linux中/usr与/var目录详解

    /usr文件系统 /usr 文件系统经常很大,因为所有程序安装在这里. /usr 里的所有文件一般来自Linux distribution:本地安装的程序和其他东西在/usr/local 下.这样可能 ...

  9. Linux修改权限命令chmod用法详解

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁 ...

随机推荐

  1. nginx开启网站目录浏览功能

    一.开启全站目录浏览功能 编辑nginx.conf, 在http下面添加以下内容: autoindex on; # 开启目录文件列表 autoindex_exact_size on; # 显示出文件的 ...

  2. 【Spring IoC】IoC介绍(一)

    IoC(Inversion of Control)的职责:原先由程序员主动通过new实例化对象这个事情,现在交由Spring负责,即由IoC容器负责. Spring 容器是 Spring 框架的核心. ...

  3. maven下载与配置(三)

    一.下载 在官网下载 https://maven.apache.org/download.cgi 我这里现在的是apache-maven-3.2.5 . 二.配置环境变量 右键我的电脑-属性-高级系统 ...

  4. 第04组 Alpha冲刺(2/6)

    队名:new game 组长博客:戳 作业博客:戳 组员情况 鲍子涵(队长) 燃尽图 过去两天完成了哪些任务 整理了一下之前敲的代码 实现了一些新的功能 接下来的计划 实现更多的功能 还剩下哪些任务 ...

  5. Linux系统运维笔记(6),CentOS 7.6双网卡路由配置

    Linux系统运维笔记(6),CentOS 7.6双网卡路由配置. 一,先确认系统版本: [root@localhost ~]# cat /etc/redhat-releaseCentOS Linux ...

  6. sqlyog管理关系型数据库mysql数据库之sqlyog的安装管理

    .关系型数据库 有库有表,有关系 非关系型数据库  存储对象.集 下面的所有演示截图都是基不超过SQLyog 11进行的. 1. 2.点击上图中的应用程序,进行安装. 安装sqlyog , 账户dd0 ...

  7. Asp.Net、API 、MVC、 PUT/DELETE 报405错解决办法

    本地put/delete能正常运行,但是部署在服务器就 报webapi method not allowed 405的错误 解决方案就是在Web.config里面加入如下设置: <system. ...

  8. SQL ----------- 借助视图写多表查询

    在多表查询中可能遇到两表.三表乃致四表查询,自己进行直接用sql 语句进行书写的话可能比较难,但是可以借助视图进行分析,书写 1.右击视图点击新建 选择需要的表点击添加,注意两个表之间要有相同的字段 ...

  9. 解决百度UEditor列出图片列出文件时返回的文件路径为磁盘绝对路径的问题

    替换绝对路径为空 String str = new ActionEnter(request, buffer.toString(), "config.json").exec(); S ...

  10. 运维开发实践——基于Sentry搭建错误日志监控系统

    错误日志监控也可称为业务逻辑监控, 旨在对业务系统运行过程中产生的错误日志进行收集归纳和监控告警.似乎有那么点曾相识?没错... 就是提到的“APM应用性能监控”.但它又与APM不同,APM系统主要注 ...