use*_*065 5 zip bash unzip bash-scripting
我有一个 Zip 文件,其名称开头带有一个连字符,比方说 '- stuff.zip'
如果我需要移动或复制文件,这意味着我需要使用双连字符,这样文件名就不会被解释为一个选项:
cp -- '- stuff.zip' '- stuff2.zip'
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试对这个文件使用解压缩,那是行不通的:
unzip -l -- '- stuff.zip'
error: -fn or any combination of -c, -l, -p, -t, -u and -v options invalid
Run Code Online (Sandbox Code Playgroud)
我已经尝试了所有我能想到的简单和双引号、反斜杠、变量中的文件名的组合,但我无法让它工作。我无法重命名文件,因为脚本将在只读文件系统上运行。
有效的一件事是使用 find :
find -maxdepth 1 -name '- stuff.zip' -exec unzip -l {} \;
Run Code Online (Sandbox Code Playgroud)
但是非常不方便。
尝试在前面加上的这个方法- stuff.zip有./:
unzip -l './- stuff.zip'
Run Code Online (Sandbox Code Playgroud)
或者使用不需要引号(单引号或双引号)但在连字符后转义空格的方法:
unzip -l ./-\ stuff.zip
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |