分类 Linux 下的文章

众所周知,在Linux系统中遍历查找文件可以使用 find 指令。我们这里来一点高级的干货 (bushi):

find ./ -type f -print0 -exec | xargs -0 grep "hello world"

上述指令将会在当前文件夹中遍历查找所有文件,并找出哪一个文件中包含 hello world 字样。


###参数讲解 ./ 当前文件夹路径 -type f 指定的格式,`f` 指 `file`, 亦仅查找文件 -print0 将文件名中存在的空格转换为 `NULL` 字符,而不是换行符 (可能解释的不正确) -exec 后面跟着可执行的命令 | UNIX的管道操作 xargs 分割命令 -0 配合 `-print0` 使用,识别 `NULL` 字符进行分割,而不是换行符 (可能解释的不正确) grep 查找出现的字符串 "(String)" 查找指定的字符串 以上。

今天又在瞎折腾,然后想到了这个很久没有使用过的指令。想着想着就觉得把它稍微介绍下。

1. 按文件名查找
find path expression | path=需要查找的路径; expression=查找的文件-/夹名称
例如:
find / -name 'owoblog*' # 该指令将会在根目录查找所有匹配开头是 owoblog 字样的文件-/夹
find . -name 'owoblog*' # 该指令指在当前目录查找所有匹配开头是 owoblog 字样的文件-/夹
find /home -name 'owoblog*' # 该指令将在 /home 文件夹中查找


以下段落转载自 这里
2.按照文件特征查找
(1)find / -amin -10    # 查找在系统中最后10分钟访问的文件(access time)
(2)find / -atime -2   # 查找在系统中最后48小时访问的文件
(3)find / -empty    # 查找在系统中为空的文件或者文件夹
(4)find / -group cat   # 查找在系统中属于 group为cat的文件
(5)find / -mmin -5    # 查找在系统中最后5分钟里修改过的文件(modify time)
(6)find / -mtime -1    # 查找在系统中最后24小时里修改过的文件
(7)find / -user fred   # 查找在系统中属于fred这个用户的文件
(8)find / -size +10000c # 查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
(9)find / -size -1000k # 查找出小于1000KB的文件

以上用法为常用写法,更多方法可以访问上方的转载链接.