如何提取tgz文件“with”一个文件夹

时间:2017-08-01 15:26:22

标签: bash sh tar

在OS X中,双击X.tgz将生成一个名为X的文件夹,将所有文件放入文件夹(文件夹名称跟随.tgz文件的名称)。

我想在终端做同样的事情。

但是,tar -xvzf /pathtofile/X.tgz会提取所有文件并将其放入/pathtofile/

并且tar -xvzf /pathtofile/X.tgz -C /newpath/新路径不会自动跟随.tgz文件名(即本例中名为“X”的文件夹)。

有没有人知道是否有一种简单的方法可以做到这一点?

2 个答案:

答案 0 :(得分:0)

在tar中使用strip-component标志:

tar --strip-components=1

答案 1 :(得分:0)

这个bash函数执行你要求做的事情,这基本上只是使用没有“.tgz”的文件名创建目录

extract_to_dir () {
    filename=$1
    dirname="${filename%.*}"
    mkdir ./$dirname
    tar -xvzf $filename -C $dirname
}

用法是:

extract_to_dir filename.tgz