解压后更改目录

Change directory after unziping

我正在制作一个允许我解压缩给定文件的脚本。我的问题是我现在不知道如何将目录更改为解压缩过程刚刚创建的目录。 我尝试使用此命令,但它不起作用:SITE_DIRECTORY="$(ls -dt */ | head -1)"

知道如何获取刚刚提取的目录的名称吗?

编辑:现在我要 SITE_DIRECTORY=unzip $SITE_NAME | grep 'creating:' | head -1 | cut -d' ' -f5-

但是新的问题出现了:unzip 命令并没有解压所有的文件。 新想法?

如果目录已知,您可以

unzip -j yourzip.zip -d /path/to/dir && cd /path/to/dir

来自 man page 的额外信息(j 选项)

-j junk paths. The archive's directory structure is not recreated; all files are deposited in the extraction directory (by default, the current one).

我的问题的解决方案是以下命令:

unzip $SITE_NAME >output.txt
SITE_DIRECTORY=$(cat output.txt | grep -m1 'creating:' |  cut -d' ' -f5-)
rm output.txt

感谢 Evan @ Unzip File which directory was created