FreeBSD 中的“where”与“find”

FreeBSD 中的“where”与“find”

所以我知道该where命令是内置的 shell,因此它执行速度更快并且只查找可执行文件;但是where和命令之间还有其他区别吗find

答案1

他们是非常不同的野兽。where fooin tcsh(也 in zsh)只是告诉您foo位于您的位置$path(或者更准确地说,通过查找通过查找(映射到数组)foo找到的 shell 内置命令和关键字、别名和可执行文件列表,shell 知道的不同命令) )。是一个相当强大的命令,用于根据各种标准搜索文件。$PATH$pathfind

例如,

find /usr/local -type f -mtime -30 -atime +7 \( -user bob -o -user karen \) -perm -001 -exec chmod -x {} \;

将找到其中的任何文件,/usr/local这些文件是普通文件(不是目录或任何内容),在过去 30 天内已修改但在过去一周内未访问过,属于 或bobkaren并且可由其他文件执行。然后chmod就是这些文件。

答案2

旁注:还有locate(1)命令,它有点类似于find(1)——它查找任何类型的文件,而不仅仅是$PATH中的文件(换句话说:不仅仅是查找$PATH中的文件) “可执行命令”) - 但使用定期重建索引,因此速度相当快。

相关内容