Linux的文件找工具find的小秘密

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux的文件找工具find的小秘密相关的知识,希望对你有一定的参考价值。

文件查找工具:

文件:根据文件的种属性去找到相应文件


find命令:通过遍历指定的目标目录,实时查找符合指定属性的文件;


精确匹配;速度略慢;


find [OPTIONS] [查找路径] [查找条件] [处理动作]

 查找路径:默认为当前路径;

 查找条件:默认为指定路径下的所有文件;

 处理动作:默认为打印至屏幕;


查找条件:

-name "文件名":文件名支持使用globbing

*, ?, [], [^]


# find /etc -name "passwd*"


-iname "文件名"


-user USERNAME: 根据属主查找

-group USERNAME: 根据属组查找


-uid UID: 根据指定UID查找;

-gid GID: 根据指定GID查找;


-nouser: 查找没有属主的文件;

-nogroup:查找没有属组的文件;


组合查找条件:

与:-a, 查找条件1 -a 查找条件2 -a ...

所有条件必须同时满足

或:-o, 查找条件1 -o 查找条件2 -o ...

满足其中一个条件即可

非:-not, !   

-not 查找条件


# find /tmp -nouser -a -name "*centos*" -ls


# find /tmp -not \( -name "*.txt" -o -name "*.out" \)

# find /tmp -not -name "*.txt" -a -not -name "*.out"


查找条件(2)


-type TYPE: 根据文件类型查找

f: 普通文件

d: 目录文件

l: 符号链接文件

b: 块设备

c: 字符设备文件

p: 命令名管道文件

s: 套接字文件


-size [+|-]#UNIT:

常用单位有:k, M, G

#UNIT: #-1 < x <= #

2k:1.8k, 1.9k, 1.1k

-#UNIT:x <= #-1

-2k: 1k, 0.9k

+#UNIT: x > #

+2k: 2.1k, 3.1k


根据时间戳查找:

以“天”为单位

-atime [+|-]#

#: #= < x < #+1

-#: x < #

+#: x >= #+1


-mtime [+|-]#


-ctime [+|-]#


以“分钟”为单位

-amin [+|-]#

-mmin

-cmin


        根据权限查找:

-perm [+|-]MODE

MODE: 与MODE精确匹配

+MODE:任何一类用户的权限只要能包含对其指定的任何一位权限即可;

            -MODE:每一类用户的权限都包含对其指定的所有权限;

-222,666,664


处理动作:

-print: 默认动作,打印至屏幕;

-ls: 显示找到的文件的详细属性;

-exec COMMAND {} \;

-ok COMMAND {} \;


注意:find命令会一次性找到所有符合条件的文件,并一同传递给后面的命令;但有些命令不能接受过长的参数;解决办法:


find | xargs COMMAND




本文出自 “11284919” 博客,请务必保留此出处http://11294919.blog.51cto.com/11284919/1755554

以上是关于Linux的文件找工具find的小秘密的主要内容,如果未能解决你的问题,请参考以下文章

聊聊Linux命令背后,你不知道的小秘密

Linux下通过find命令进行rm文件删除的小技巧

linux命令 find找一个文件只在当前目录找吗?

linux命令 find找一个文件 只在当前目录找么? 想整个电脑的找 怎么办?

Linux下,find命令可以常找文件内容吗?

linux中用find命令找不到指定文件