我整理了一个脚本来为我执行一些文件操作。我正在使用通配符运算符*
将函数应用于一种类型的所有文件,但是我没有得到一件事。我可以将unzip
所有文件放在这样的文件夹中
unzip "*".zip
但是,要稍后删除所有zip文件,我需要
rm *.zip
也就是说,它不需要引号。另一方面,如果我只给它*,则解压缩不起作用(警告我“文件不匹配”)。
为什么有什么不同?对我来说,这似乎是完全相同的操作。还是我使用通配符不正确?
Unix中通配符的介绍并没有真正涉及到这一点,而且我在rm
或zip
文档中找不到任何内容。
我在Mac(优胜美地)上使用终端。
unzip
将glob应用于存档的内容;您无法使用通配符从bash中获取它们。(您将需要```对于F中unzip -l archive.zip
;做... done`)
unzip
在单个zip文件中接受glob进行匹配。但这是不同的。我实际上unzip '*.zip'
在一个包含多个zip文件的目录中尝试过,它从所有zip中提取所有文件。就像我说的那样,很奇怪。 tar
没有这样的操作模式。
unzip
如果没有普通的for f in *.zip;do...done
shell循环就可以做到这一点。这样奇怪的非类unix命令行UI。