目的
本文提供了关于Linux文件系统中如何查找特定目录或包含特定单词或字符串的所有文件的有用技巧。
约定
# - 要求直接以root用户身份或使用sudo命令以root权限执行给定的命令
$ - 给定的命令作为一个普通的非特权用户执行
示例
以非递归方式查找具有特定字符串的所有文件
第一个命令示例将在/etc/目录下的所有文件中搜索字符串artful,同时排除任何子目录:
linuxidc@linuxidc:~$ grep -s artful /etc/*
/etc/lsb-release:DISTRIB_CODENAME=artful
/etc/os-release:VERSION_CODENAME=artful
/etc/os-release:Ubuntu_CODENAME=artful
grep -s 选项将禁止关于不存在或不可读文件的错误消息。 输出显示文件名以及打印包含请求字符串的实际行。
如下图:
递归地查找具有特定字符串的所有文件
以上命令省略了所有的子目录。 递归搜索意味着遍历所有的子目录。 以下命令将在/etc/目录内的所有文件(包括所有子目录)中搜索字符串artful:
linuxidc@linuxidc:~$ sudo grep -R artful /etc/*
[sudo] linuxidc 的密码:
/etc/apt/sources.list.save:# deb cdrom:[Ubuntu 17.10 _Artful Aardvark_ - Release amd64 (20171018)]/ artful main restricted
/etc/apt/sources.list.save:deb http://cn.archive.ubuntu.com/ubuntu/ artful main restricted
/etc/apt/sources.list.save:# deb-src http://cn.archive.ubuntu.com/ubuntu/ artful main restricted
/etc/apt/sources.list.save:deb http://cn.archive.ubuntu.com/ubuntu/ artful-updates main restricted
/etc/apt/sources.list.save:# deb-src http://cn.archive.ubuntu.com/ubuntu/ artful-updates main restricted
/etc/apt/sources.list.save:deb http://cn.archive.ubuntu.com/ubuntu/ artful universe
/etc/apt/sources.list.save:# deb-src http://cn.archive.ubuntu.com/ubuntu/ artful universe
/etc/apt/sources.list.save:deb http://cn.archive.ubuntu.com/ubuntu/ artful-updates universe
......
/etc/dictionaries-common/words:artful
/etc/dictionaries-common/