我想用在同一命令中的find
某些子文件夹而不是其他子文件夹中递归。$HOME
那可能吗?
为了澄清,我想递归到~/Desktop
, ~/Documents
, and ~/Dropbox
,但不递归到~/.config
or ~/.dropbox
or ~/.cache
。
我想用在同一命令中的find
某些子文件夹而不是其他子文件夹中递归。$HOME
那可能吗?
为了澄清,我想递归到~/Desktop
, ~/Documents
, and ~/Dropbox
,但不递归到~/.config
or ~/.dropbox
or ~/.cache
。
您可以将要开始的目录作为多个起点传递给
find
.你想用它
find
来搜索一些特定的目录,所有这些都恰好是你的主目录的子目录:因此,您可以将这些目录作为
find
. 我们经常使用单个目录作为起点,通常是.
但find
不限于此。替换为您要运行
-name my-file
的其余命令(即测试和操作)。find
这不会将您的主目录本身作为 的起点
find
,并且由于它提供的所有目录都不包含您的主目录 - 它们由它包含 - 您的主目录中的文件不包含在任何这些中将找不到特定目录。如果这些目录恰好是您的主目录的所有子目录,其名称不以 开头
.
,那么您可以让您的 shell 为您构建列表:*
匹配文件名中的任何字符序列。最后一个尾随/
导致仅匹配目录。默认情况下,shell 不会扩展*
到名称以 . 开头的文件.
。因此,除非您启用了dotglob
shell 选项(或者您的 shell 具有的任何功能,如果您的 shell 不是 Bash),由 生成的列表*
不会包含主目录的.config
、.dropbox
或.cache
子目录。当然,仍然可以找到名称以开头
.
并位于作为起点传递的目录中的文件和目录。