尝试进入与版本无关的恶意检测目录时 cd 失败

尝试进入与版本无关的恶意检测目录时 cd 失败

我在 Debian 9.3 上安装 Maldet:

cd /usr/local/src
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
tar -xzvf maldetect-current.tar.gz 
cd maldetect-*
bash ./install.sh

在做的时候cd maldetect-*我得到了:

Bash:太多争论

我尝试这样做cd "maldetect-*",但该命令无效。

为什么我无法访问该目录?...

答案1

在 中cd maldetect-*,与该模式匹配的所有文件和目录都在命令行上展开。您至少拥有该.tar文件,并且可能在其中找到了一个目录。您一次只能位于一个目录中,因此cd多个目录是没有意义的。

cd "maldetect-*",没有扩展。命令本身很好,但是您可能没有名称中带有星号的目录,因此它不会找到任何内容cd

如果您知道只有一个与该模式匹配的目录,则可以使用cd maldetect-*/尾随斜杠来要求 shell 仅扩展目录名称。

如果您可以有多个与该模式匹配的目录,则必须找到最新的目录或查看存档内部以查找其中的目录名称。

查找最新的内容在中讨论Bash常见问题解答 003(或者可能Bash常见问题解答 099),可能还有一些现场问题,例如找到最新的文件。多种文件类型限制

在所有文件名都已知的简单情况下ls -tr | tail -1可能会起作用,但请参阅 为什么不应该解析 ls(1) 的输出

当然,查看存档内部应该不会太难,但这也假设存档在很多方面都是“好的”:

$ tar tzf maldetect-current.tar.gz | head -1 | cut -d/ -f1
maldetect-1.6.2

相关内容