`
haiouc
  • 浏览: 117329 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

(linux) find command

阅读更多

find命令的主要功能是在系统中查找文件或目录:
 
find命令的一般形式为:find pathname -options [-print -exec -ok]
print为对匹配文件输出到标准输出,默认为标准输出,故可不写
exec为对匹配文件执行该参数给出的shell命令,形式为'command' {} \;
ok与exec类似,更安全,每步需要用户确认。
 
1.-name 根据文件名匹配。例如:
find ~ -name "test.txt" 在home路径及子目录下查找test.txt文件。
find . -name "[a-z][A-Z][0-9][0-9]*" 在当前路径及子目录下查找,一个小写字母加一个大写字母加两个数字开头的文件。
find / -name "*.txt" 查找所有txt文件。
 
2.-perm(permission)根据权限匹配。例如:
find . -perm 777 查找当前及子目录下所有权限为777的文件。(777意义详见chmod)
find . -perm -777 查找权限大于等于777的文件。+为小于等于。
 
3.-user 根据用户匹配。例如:
find . -user abc 查找abc属主的文件。
 
4.-nouser 查找属主账户已经被删除的文件。例如:
find . -nouser
 
5.-group,-nogroup 与user,nouser类似。
 
6.-mtime 根据更改时间匹配。例如:
find . -mtime -3 3天以内的
find . -mtime +4 4天以前的
 
7.-newer 根据更改时间匹配。例如:
find . -newer abc 更改时间比abc文件新的文件。
find . -newer abc ! -newer 123 -exec ls -l {} \; 更改时间比abc新但比123旧的文件,列出其详细信息。!为逻辑非。
 
8.-type 根据文件类型匹配。
文件类型:
b:块设备文件
d:目录
c:字符设备文件
p:管道文件
l:符号链接文件
f:普通文件

例如:
find . -type f #查找普通文件
$find . -type d -name 16M_Image #查找特定目录
 
9.-size 根据文件长度匹配。例如:
find . -size +1000000c 文件大于1M字节的文件。注意数字后面的c,c代表用字节计量。
find . -size 10 文件等于512块的文件。数字后没有c时,表示用块(1块=512字节)计量。
 
10.还可与xargs命令一同使用(后续介绍)。


======================================================================================
======================================================================================
                          linux find command

==========================================

格式: find [path...] [expression]
find / -name access_log 2>/dev/null 不显示错误信息
find / -amin n ##查找系统中最后N分钟访问的文件
find / -atime n ##查找系统中最后n*24小时访问的文件
find / -cmin n ##查找系统中最后N分钟被改变状态的文件
find / -ctime n ##查找系统中最后n*24小时被改变状态的文件
find / -empty ##查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
find / -false ##查找系统中总是错误的文件
find / -fstype type ##查找系统中存在于指定文件系统的文件,例如:ext2 .
find / -gid n ##查找系统中文件数字组 ID 为 n的文件
find / -group gname ##查找系统中文件属于gnam文件组,并且指定组和ID的文件
find / -mmin n # 查找在系统中最后n分钟里修改过的文件
find / -mtime n #查找在系统中最后24*n小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -size nc #查找在系统中长度为n字节的文件
find / -size +nc #查找在系统中长度大于n字节的文件
find / -daystart ##测试系统从今天开始24小时以内的文件,用法类似-amin
find / -depth ##使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容
find / -follow ##遵循通配符链接方式查找; 另外,也可忽略通配符链接方式查询
find / -help ##显示命令摘要
find / -maxdepth levels ##在某个层次的目录中按照递减方法查找
find / -mount ##不在文件系统目录中查找, 用法类似 -xdev.
find / -noleaf ##禁止在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查找

find / -version ##打印版本数字
-exec command; ##查找并执行命令
-fprint file ##打印文件完整文件名
-fprint0 file ##打印文件完整文件名包括空的文件
-fprintf file format ##打印文件格式
-ok command; ##给用户命令执行操作,根据用户的Y 确认输入执行
-printf format ##打印文件格式
-ls ##打印同种文件格式的文件.

几个参数之间可以用-and,-or连接,某个参数取反可用!
======================
用man find可以看到下面的说明:
-mtime n 
   Files data was last modified n*24 hours ago.  ===>  man find里面解释错误
find -mtime 4 是找到所有5天前4天后被更改的档案文件,
find -mtime -4 是4天内被改的档案,
find -mtime +4 是4天后被改的档案。
======================

查看某目录下有多少个文件命令:
# find DirPath -type f | wc -l
比如: find /home/snail -type f | wc -l

如果想查看 src 目录下有多少 C 文件,如下:
# find ./src -type f -name "*.c" | wc -l

find 命令的 -type 后的参数有以下选择,每种都代表不一样的“类型(type)”
-type 文件类型
        b      块文件(比如内存)
        c      字符文件(比如串口)
        d      目录文件(目录也是一种文件)
        p      有名管道(FIFO)
        f      普通文件
        l      符号链接(如果使用 -L 或 -follow 选项则不起作用,除非链接损坏)
        s      socket文件(比如 /tmp/mysql.sock)
        D      door (Solaris)

======================
文件查找命令  find
find 用于查找文件系统中指定文件,其格式为: find 要查找的路径 表达式
例如:  find . -name 1.txt        \\ 在当前目录及其子目录下查找文件1.txt
find /tmp -name 1.txt     \\ 在/tmp 目录及其子目录下查找文件1.txt

======================

查找Linux下的空目录技巧

if [ -z "$1" ]; then
 echo Usage: $0 \
 exit 1
fi
echo -e Null directory list:
for i in $(find $1 -type d -print)

do
 TMP=$(ls $i)
 if [ "$TMP" = "\." ]; then
  continue
 elif [ -z "$TMP" ]; then
  echo $i
 fi
done

 

======================

分享到:
评论

相关推荐

    linux_command_tools

    “Linux Command Tools”可能包含一系列模拟Linux命令的脚本或程序,如`ls`, `cd`, `mkdir`, `rm`, `cp`, `mv`, `grep`, `find`, `sed`, `awk`等,这些都是Linux系统中最常用的命令。通过这个工具,用户可以执行文件...

    OS + linux command / Linux Command / Linux command / linux Command

    标题中的“OS + Linux Command”指的是操作系统,特别是Linux操作系统下的命令行工具。在Linux系统中,命令行界面是用户与操作系统交互的主要方式之一,通过输入各种命令,用户可以执行各种任务,如文件管理、进程...

    Linux.Command(PDF)

    本资源"Linux.Command(PDF)"是针对Linux操作系统中命令行工具的一个详细指南,旨在帮助用户深入理解和掌握在Linux环境下进行日常操作的各种命令。 Linux命令是与操作系统交互的主要方式,它允许用户执行各种任务,...

    Linux_Command_Line

    ### Linux Command Line 知识点详解 #### 一、引言 在《Linux Command Line》这本书中,作者为我们提供了一系列关于Linux命令行的基础知识与实用技巧。这些内容不仅适合Linux初学者快速上手,同时也为有经验的用户...

    linux_command

    此外,还可能包含Linux系统特有的命令,如grep, find, sed, awk等用于数据处理和脚本编写。 3. **Ts_Contact.xlsx**:此文件可能是关于Linux或Android系统中联系人管理命令的参考,或者是一个示例,展示了如何通过...

    linux-command-line

    ### Linux命令行基础知识点 #### 一、系统与内核信息 - **uname -a**:显示系统和内核信息。这条命令可以帮助我们了解当前系统的详细版本信息,包括内核版本号、操作系统名称等。 - **head -n1 /etc/issue**:显示...

    Linux Find 命令详解

    ### Linux Find 命令详解 #### 一、前言:了解 find 命令 `find` 是 Linux 和类 Unix 系统中一个非常强大的工具,用于在文件系统中搜索文件。它提供了多种选项来根据不同的标准进行精确查找,如文件名、权限、拥有...

    linux下find命令

    Linux 下 find 命令详解 find 命令是 Linux 系统中一个功能强大且常用的命令,用于在文件系统中搜索文件。它可以根据文件的各种属性,如名称、权限、所有者、组、时间戳、大小等,来查找指定的文件。 基本语法 ...

    Linux命令搜索工具linux-command.zip

    linux-command Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。   Linux命令分类 这里存放Linux 命令大全并不全,你可以通过linux-command来搜索,它是把 command ...

    Complete Linux Command Reference

    《Complete Linux Command Reference》是一本全面介绍Linux命令的权威指南,涵盖了从基础操作到高级技巧的广泛内容。在Linux操作系统中,命令行是系统管理、文件操作和程序控制的主要工具,掌握Linux命令对于任何IT...

    linux command & shell

    10. **find**:根据条件查找文件。 11. **sudo**:以管理员权限执行命令。 12. **apt-get**或**yum**:在Debian/Ubuntu和RHEL/CentOS系统中安装软件包。 接下来,我们来谈谈Shell。在Linux中,Shell是一个命令解释...

    The.Linux.Command.Line.A.Complete.Introduction

    除了基础内容,书中还探讨了高级主题,如正则表达式、awk和sed文本处理工具、grep和find命令的高级用法、环境变量的设置等,为用户提供更深入的学习资源。 总之,《Linux命令行:一个完整的介绍》一书涵盖了从基础...

    Linux Complete Command Reference

    ### Linux Complete Command Reference #### 简介 《Linux Complete Command Reference》是一本全面介绍Linux命令行操作的书籍。本书由Red Hat Software出版,并由J. Purcell编著。本书旨在为用户提供一个全面且...

    ice_chen_linux_command

    本文将深入探讨“ice_chen_linux_command”这个主题,它聚焦于Linux命令行操作,帮助用户掌握日常工作中必备的命令技能。 首先,我们要理解Linux命令行界面(CLI)的重要性。在没有图形化界面的远程服务器或为了...

    The Linux Command Line英文版_terminal_linux_

    《The Linux Command Line》是一本深入探讨Linux命令行界面的权威指南,对于想要掌握Linux操作系统核心功能的用户来说,这是一本不可或缺的参考书。在Linux的世界里,终端(Terminal)或控制台(Console)是与系统...

    Linux常用的Command

    ### Linux常用命令详解 #### 一、文件管理 1. **ls** - `ls`:显示当前目录下的文件和目录。 - `ls -a`:列出当前目录下的所有文件,包括隐藏文件(以`.`开头)。 - `ls -l` 或 `ll`:以长格式显示当前目录下的...

    linux-command:➥Linux命令查询工具跨平台桌面版

    总的来说,"linux-command:➥Linux命令查询工具跨平台桌面版"是一个集实用性与教育性于一体的软件,它利用Electron的优势,将Linux命令查询功能带入了桌面环境,方便了用户的同时,也为开发者提供了学习和实践的...

Global site tag (gtag.js) - Google Analytics