【发布时间】:2016-05-02 06:05:46
【问题描述】:
我正在创建一个 bash 脚本来提取一个 tar 文件并将其放入其中,然后它会运行另一个脚本。到目前为止,这在我下面的代码中运行良好,但是,我遇到了一个情况,如果提取的文件夹与 .tar 文件名不同,那么它会导致问题。所以我的问题是,我应该如何处理文件名不同于 .tar 文件名的特殊情况。
例如)my_file.tar ---> 提取后 ----> my_different_file_name
#!/bin/bash
fname=$1
echo the file you are about to extract is $fname
if [ -f $fname ]; then #if the file exists
tar -xvzf $fname #tar it
cd ${fname%.*} #the `%.*` will extract filename from filename.tgz and cd into it
echo ${fname%.*}
echo $PWD
loadIt #another script to load
fi
【问题讨论】:
-
您的压缩包是否只会创建 one 顶级目录?如果是这样,并且您的起始目录是干净的,那么
cd *将起作用(但如果不是这种情况,则不可靠)。是否有可用于查找目标目录的解压缩 tarball 的内容? -
@EtanReisner 不,可能还有其他目录已经存在于同一级别,如果我这样做
cd *,我相信它会 cd 进入与刚刚提取的目录不同的目录。跨度>