我了解.DS_store
文件是有目的的。也就是说,使用cd
命令自动完成时,它们是很麻烦的。当我键入cd
Terminal并按两次Tab键时,它将列出工作目录中的所有目录。
是否可以.DS_store
从终端中的此自动完成目录列表中删除?
cd */
其次是两个选项卡,列出了当前目录的所有子目录。但是您必须退格来选择一个...
cd
是足够聪明以默认情况下仅列出目录。
我了解.DS_store
文件是有目的的。也就是说,使用cd
命令自动完成时,它们是很麻烦的。当我键入cd
Terminal并按两次Tab键时,它将列出工作目录中的所有目录。
是否可以.DS_store
从终端中的此自动完成目录列表中删除?
cd */
其次是两个选项卡,列出了当前目录的所有子目录。但是您必须退格来选择一个...
cd
是足够聪明以默认情况下仅列出目录。
Answers:
export FIGNORE=DS_Store
为我工作。
FIGNORE [是]执行文件名完成时要忽略的后缀列表,以冒号分隔。后缀与FIGNORE中的条目之一匹配的文件名将从匹配文件名列表中排除。样本值为'.o:〜'
如果您担心中可能存在后缀FIGNORE
,则可以使用:
export FIGNORE=$FIGNORE:DS_Store
$FIGNORE:.DS_Store
对我而言它必须在Mac上。没有“。”就没有用。
我认为您真正要寻找的是Bash命令的上下文感知选项卡完成。例如,.DS_Store
是常规文件,而不是目录,因此不应将其显示为的可能补全cd
。
解决此问题的软件包称为bash-completion
。我使用的是Fink的版本(fink install bash-completion
),MacPorts(port install bash-completion
)和Homebrew(brew install bash-completion
)也可以使用它。
在您的.bashrc或.bash_profile中安装并配置了软件包之后,常规文件将不再显示为cd的补全,并且许多其他常见的bash命令也变得可以识别上下文(例如gunzip
)。
cd
Terminal时,再按两次Tab键:在所有可能性(不仅是目录)被列出之前,会有提示。