我通常这样做:

tar -czvf my_directory.tar.gz my_directory

如果我只想在my_directory中包含所有内容(包括任何隐藏的系统文件),而不包括目录本身,该怎么办?我不想:

my_directory
   --- my_file
   --- my_file
   --- my_file

我想要:

my_file
my_file
my_file

当前回答

function tar.create() {
        local folder="${1}"
        
        local tar="$(basename "${folder}")".tar.gz
        
        cd "${folder}" && tar -zcvf "../${tar}" .; cd - &> /dev/null
}

例子:

tar.create /path/to/folder

不客气

其他回答

cd DIRECTORY
tar -czf NAME.tar.gz  *

星号将包括所有内容,甚至包括隐藏的内容

cd my_directory
tar zcvf ../my_directory.tar.gz *

我发现最简单的方法是:

CD my_dir && tar -czvf ../my_dir.tar.gz *

使用pax。

Pax是一个被弃用的包,但它以一种简单的方式完美地完成了这项工作。

pax -w > mydir.tar mydir

你也可以像往常一样创建存档并提取它:

tar --strip-components 1 -xvf my_directory.tar.gz