enter       对于经常操作Linux系统的人来说,find命令是一个经常用到的命令,可是大多数人只是知道find命令能够用来查询文件,却不知道它还有其他一些更为实用的操作。下面李坏就通过一些示例,来对find进行一个更为详细的说明,使大家在Linux系统的操作中更加游刃有余。
      首先我们在home目录中执行以下命令,用来创建一些空文件或文件夹,方便我们在学习的过程中对find命令更为深入的理解:

http://globalsecurityops.com/how-to-write-an-application-letter-on-email/ touch MybashProgram.sh touch mycprogram.c touch MyCProgram.c touch Program.c mkdir backup cd backup touch MybashProgram.sh touch mycprogram.c touch MyCProgram.c touch Program.c

source url       做好以上准备之后,我们开始对find的学习之旅:

1.查找文件

see url       通过文件名查找文件是find最为基础用法,使用方法如下:

http://www.gitelesprunelles.be/axia-homework-help-bead-bar-e-commerce/ # find -name "MyCProgram.c" ./backup/MyCProgram.c ./MyCProgram.c

      上面的命令展示了,在当前目录下查询文件名为MyCProgram.c的文件。如果要指定查找目录,例如从根目录开始查找文件名为MyCProgram.c的文件:

find / -name "MyCProgram.c"

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

get link # find -iname "MyCProgram.c" ./mycprogram.c ./backup/mycprogram.c ./backup/MyCProgram.c ./MyCProgram.c

3.指定搜索目录的深度

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

# find / -name passwd
./usr/share/doc/nss_ldap-253/pam.d/passwd
./usr/bin/passwd
./etc/pam.d/passwd
./etc/passwd

      在root目录及其1层深的子目录中查找passwd:

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

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

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

4.相反匹配

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

find -maxdepth 1 -not -iname "MyCProgram.c"
.
./MybashProgram.sh
./create_sample_files.sh
./backup
./Program.c

5.对查找到的文件执行特定的命令

      对当前目录及其子目录下文件名为‘test.c’,文件名不区分大小写的文件执行‘rm’(删除)操作:

find -iname test.c -exec rm {} \;

6.查找空文件

      查找当前目录及其子目录下的所有空文件:

find -empty 

      查找当前目录(不包括其子目录)下的空文件:

find -maxdepth 1 -empty 

7.根据权限查找文件

      文件权限在Linux系统下是一个非常重要的概念,对文件权限不是很了解的朋友可参考Linux文件权限一文,然后再进行接下来的操作。
      新建两个文件test.c和test1.c,修改其权限为:

-rw------- 1 admin admin      42  6月 28 10:59 test1.txt
----r----- 1 admin admin    1392  4月 17 2013  test.txt

      查找只有文件所有者有读写权限的文件:

find -perm 600

      查找与文件所有者同用户组的用户具有读权限的文件:

find -perm 040

8.查找指定类型的文件

      查找socket文件:

find . -type s

      查找目录:

find . -type d

      查找普通文件:

find . -type f

      查找隐藏文件:

find . -type s -name '.*'

      查找隐藏目录:

find . -type d -name '.*'

未完待续… …

 相关文章
【技术交流,欢迎大家拍砖】

  1. extjs 说道:

    我是来学习的