九、文件定位与查找
命令 | 功能 | 命令 | 功能 |
---|---|---|---|
which | 寻找可执行文件 | whereis | 寻找特定文件 |
locate | 搜索文件(按关键字) | find | 多样化高级查找 |
1.which
2.whereis
- 只查找二进制文件:-b
- 只查找manual路径下的文件:-m
- 只查找source源文件:-s
- 查找其他文件:-u
3.locate
- 忽略大小写:-i
- 后面可接正则表达式:-r
4.find
- 与时间相关参数
- n天前的“一天之内”修改的文件:-mtime n
- n天前的,不包含n的,修改过的文件:-mtime +n
- n天之内,包含n的,修改过的文件:-mtime -n
- 比file还要新的文件:-newer file
- 与用户或用户组相关的参数
-
用户UID为n:-uid n
-
群组GID为n:-gid n
-
用户名为name:-user name
-
群组名为name:-group name
-
文件所有者不存在:-nouser
-
文件所在组不存在:-nogroup
-
- 与文件权限及名称有关的参数
-
文件名为filename:-name
-
查找比SIZE大或小的:-size [±] SIZE
-
f b c d | s p:type TYPE
-
刚好等于mode的文件:-perm mode
-
全部包含mode的文件:-perm -mode
-
find -exec | s -l {} ;
-
查找后缀为.c、.cpp、.h、.sh的文件并统计以及代码的总行数
find . -name '*.c' -o -name '*.cpp' -o -name '*.h' -o -name '*.sh'
find . -name '*.c' -o -name '*.cpp' -o -name '*.h' -o -name '*.sh' | xargs -n1 cat | wc -l