Linux find命令傻瓜入门

命令格式:find <PATH> <OPTION> <ACTION>

<PATH>

默认为当前目录

<OPTION>

默认查找指定路径下的所有文件
-name "filename" 按名字检索文件
-iname 'filename' 按名字检索文件,不区分大小写。名字可以使用通配符:

* 任意长度的任意字符
? 任意的单个字符
[] 选项内的字符

-type "" 检索文件的类型

f:普通文件
d: 目录
c: 字符
b: 块设备
l: 链接
p: 管道
s: 套接字

-maxdepth #NUMBER 检索目录深度,配置为1则只检索第一级目录
-regex pattern 基于正则表达式进行文件名匹配
-user username :根据属主查找
-group groupname :根据属组查找
-gid gid:根据gid查找
-uid uid::根据udi查找
-nouser 查找没有属主的文件
-nogroup 没有属组的文件

<ACTION>

默认为显示到console
-print 默认-ls:类似 ls -l的形式显示文件的每一个信息
-ok command {} ; 会每次执行进行询问操作,需要用户确认
-exec command {} ; 不会惊醒询问操作

find与xarg (此小节内容是完全引用他人的)

xargs: 作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。
相较于-exec command 而言,此命令功能更强悍。和find合用的时候,一般是通过管道传递给xargs
find /tmp –size +100M | xargs ‘rm –rf '

实例

**find . -maxdepth 1 -name ".*" **查找当前目录下的隐藏文件和目录

ray@ray-ThinkPad-X250:~$ find . -maxdepth 1 -name ".*"
.
./.gnome2
./.swp
./.webex
./.config
./.gnome
./.xsession-errors.old
./.systemtap
./.nixnote

**find . -maxdepth 1 -iname "*app*" **查找当前目录下所有包含“app”字符的文件或目录,不区分大小写

ray@ray-ThinkPad-X250:~$ find . -maxdepth 1 -iname "*app*"
./Applications

**find /home/ -name "*.desktop" **查找当前目录及其子目录下的所有.desktop文件

ray@ray-ThinkPad-X250:~$ find /home/ -name "*.desktop"
/home/ray/.config/autostart/telepathy-indicator.desktop
/home/ray/.config/autostart/gnome-user-share-webdav.desktop
/home/ray/.config/autostart/ulogme.desktop
/home/ray/examples.desktop
/home/ray/.gnome/apps/chrome-nmmhkkegccagdldgiimedpiccmgmieda-Default.desktop
/home/ray/.gnome/apps/chrome-apdfllckaahabafndbhieahigkjlhalf-Default.desktop

**find . -name "*theme*" -type d **查找当前目录及其子目录下所有的包含“theme”字符的目录

ray@ray-ThinkPad-X250:~$ find . -name "*theme*" -type d
./.vim/plugins/vim-airline/autoload/airline/themes
./Downloads/debs/theme
./Downloads/debs/theme/arc-theme
./Downloads/debs/theme/arc-theme/extra/Chrome/arc-theme
./Downloads/debs/theme/arc-theme/extra/Chrome/arc-darker-theme
./.local/share/themes

find . -maxdepth 1 -iname "*app*" -exec ls -d {} ; 查找当期目录下名字包含"app"字符(不去分大小写)的目录或文件,并通过命令ls -d 显示出来。

ray@ray-ThinkPad-X250:~$ find . -maxdepth 1 -iname "*app*" -exec ls -d {} \;
./Applications
ray@ray-ThinkPad-X250:~$ 

find . -maxdepth 1 -iname "*app*" | xargs ls -d 实现的结果与上一条一样

ray@ray-ThinkPad-X250:~$ find . -maxdepth 1 -iname "*app*" | xargs ls -d
./Applications

参考URL

http://blog.chinaunix.net/uid-24648486-id-2998767

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在linux下面工作,有些命令能够大大提高效率。本文就向大家介绍find、grep命令,他哥俩可以算是必会的lin...
    拿破轮胎阅读 1,005评论 0 4
  • find命令是用于实现精确查找,实时查找指定目录下面的文件。在工作中常用。优点是:实时,精确。缺点是:比较占用系统...
    dxldeng阅读 758评论 0 1
  • 我从来处来 我沉归何处 我来自尘世 我归于黄土 归于自然 归于万物 我生,她笑 我死,她哭
    旧时雨m阅读 189评论 0 3
  • 在项目中应用RxJava时,遇到了这样的使用场景:模拟从服务器返回了一个列表。 我在处理数据时,想判断一下这个li...
    安德雷士阅读 5,776评论 2 7
  • 明月照泉,疏云薄雾蝉鸣浅。囊萤置砚,读尽缥缃卷。 夜色难眠,何处笙歌传。林深处,台上栏看,曲尽氤氲散。 ...
    山雾不与阅读 394评论 0 3