我有一个文件夹,在 rsync 之后会有一个 zip 文件。我想把它解压到它自己的文件夹(如果zip是L155.zip,把它的内容解压到L155文件夹)。问题是我事先不知道它的名称(尽管我知道它将是“字母数字数字数字”),所以我必须将一个未知的文件解压缩到它的未知文件夹,这将自动完成。
命令“unzip *”(或 unzip *.zip)在终端中有效,但在脚本中无效。这些是通过终端一一执行的命令,但在脚本中不起作用。
#!/bin/bash
unzip * #also tried .zip and /path/to/file/* when script is on different folder
i=$(ls | head -1)
y=${i:0:4}
mkdir $y
unzip * -d $y
首先我解压缩文件,然后我通过 ls 读取第一个提取文件的名称并将其保存在一个变量中。我取前 4 个字符并用它创建一个目录,然后再次将文件解压缩到该特定文件夹。
第一次解压完成后的整个过程,是因为.zip里面的文件,都是以zip已经有的名字开头的,所以如果L155.ZIP是zip,里面的文件就是L155* * *.txt。
zip 文件位于/path/to/file/NAME.zip
. 当我运行脚本时,我收到如下错误:
unzip: cannot find or open /path/to/file/*.ZIP
unzip: cannot find or open /path/to/file//*.ZIP.zip
unzip: cannot find or open /path/to/file//*.ZIP.ZIP. No zipfiles found.
mkdir: cannot create directory 'data': File exists data
unzip: cannot find or open data, data.zip or data.ZIP.