2016-09-18 25 views

回答

3

这是一个glob匹配。 “ - ”每当切换参数与开始

case '-*'将被执行。

而且,因为只有第一个匹配的情况下,将被使用,case '*'作为最后一种情况就像是“默认”。如果你早一点,它会吞下所有的情况。

此外,这里的引用是必要的,否则鱼会扩大该glob,这意味着case -*将在当前目录中具有所有匹配的文件名作为参数,所以如果切换的参数是文件的名称以“ - ”开头的当前目录。

2

随着@faho's answer帮助下,我理解的-*目的。

-*是glob模式。它与*.pdfReport_2016_*这样的模式完全不同。

作者添加此检查以忽略所有以-开头的目录。它将创建一个以-开头的目录,但不会将CWD设置为它。

原因,-在shell中有特殊用法。

例如,cd -不改变目录到一个名为-目录。相反,它切换到你是最后一个目录。

目录或文件的名字开始与-是祸水。以下关于SO姐姐网站的问题给出了一个想法。

  1. How do you enter a directory that's name is only a minus?

  2. How do I delete a file whose name begins with “-” (hyphen a.k.a. dash or minus)?

  3. How to cd into a directory with this name “-2” (starting with the hyphen)?

难怪笔者决定忽略与-启动目录。

相关问题