使用/bin/find /root -name '*.csv'
回报:
/root/small_devices.csv
/root/locating/located_201606291341.csv
/root/locating/located_201606301411.csv
/root/locating/g_cache.csv
/root/locating/located_201606291747.csv
/root/locating/located_201607031511.csv
/root/locating/located_201606291746.csv
/root/locating/located_201607031510.csv
/root/locating/located_201606301412.csv
/root/locating/located_201606301415.csv
/root/locating/located_201607031512.csv
Run Code Online (Sandbox Code Playgroud)
我实际上并不想要 . 下的所有文件/root/locating/
,因此预期的输出只是/root/small_devices.csv
.
是否有一种非递归使用“查找”的有效方法?
如果重要的话,我正在使用 CentOS。
Sun*_*eep 53
你可以用-maxdepth
选项来做到这一点
/bin/find /root -maxdepth 1 -name '*.csv'
Run Code Online (Sandbox Code Playgroud)
从 man find
-最大深度级别
在起点以下的目录的大多数级别(非负整数)级别下降。
-最大深度 0
意味着仅将测试和操作应用于起点本身。
Kus*_*nda 10
标准find
:
find /root ! -path /root -prune -type f -name '*.csv'
Run Code Online (Sandbox Code Playgroud)
这将从搜索中修剪(删除)所有目录,目录本身/root
除外/root
,并继续打印与*.csv
.
使用 GNU find
(以及任何其他find
理解的实现-maxdepth
):
find /root -maxdepth 1 -type f -name '*.csv'
Run Code Online (Sandbox Code Playgroud)