使用find命令时,几乎总是需要搜索本地驱动器。但是,我几乎总是安装了超大型网络共享,这些都包含在搜索中。有没有一种简单的方法可以将find命令,grep命令和其他类似命令中的命令排除在外?例:
查找/ -name .vimrc
使用find命令时,几乎总是需要搜索本地驱动器。但是,我几乎总是安装了超大型网络共享,这些都包含在搜索中。有没有一种简单的方法可以将find命令,grep命令和其他类似命令中的命令排除在外?例:
查找/ -name .vimrc
Answers:
使用该-fstype local
选项查找:
find / -fstype local -name .vimrc
如果您只想排除特定路径,则可以使用-prune
:
find / -name /path/to/ignore -prune -o -name .vimrc
更新:
该local
伪文件系统类型是在版本中是否带有OS X可用,但不是在GNU的发现(由GNU查找认可fstypes中)。
如果您使用的是GNU find(与大多数linux系统一样),则改为使用-mount
:
find / -mount -name .vimrc
find
管道grep
到此答案所示:superuser.com/questions/80033/…。最近,我一直在使用ack
(Betterthangrep.com),但是ack
似乎没有选择仅搜索本地驱动器的选项。
-prune
,否则它仍然会遍历不需要的文件系统。我认为第二个示例应该-path
代替,-name
因此它将忽略路径。FWIW ...最后一个示例确实起作用,它停留在“当前文件系统”上,因此不会遍历其他文件。
最初的问题是仅在本地磁盘上查找,因此为了完整起见,这就是我使用的方法。
for PART in `awk '(!/^#/ && $6 != "0" || $3 == "xfs" ) { print $2 }' /etc/fstab 2>/dev/null`; do find $PART -xdev -name .vimrc -print 2>/dev/null; done
只要您的fstab设置正确,它就应该只搜索本地磁盘。也就是说,cifs挂载的最终标志应设置为0。当我们开始使用RHEL7时,我将xfs文件系统的OR包括在内,它们也应设置为0,因为它们无意在重启后重新进行磁盘重组。
希望能有所帮助。