我通常这样做:

tar -czvf my_directory.tar.gz my_directory

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

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

我想要:

my_file
my_file
my_file

当前回答

如果使用bash,这可能是最简单的答案。 使用shopt -s dotglob, bash命令将:

不包括根目录。 将包含根目录中的隐藏文件。

cd my_directory
shopt -s dotglob
tar -czvf ../my_directory.tar.gz *
shopt -u dotglob

(来自https://stackoverflow.com/a/9776491/7726468)

测试这个解决方案:

其他回答

使用tar的-C开关:

tar -czvf my_directory.tar.gz -C my_directory .

-C my_directory命令告诉tar将当前目录更改为my_directory,然后。意思是“添加整个当前目录”(包括隐藏文件和子目录)。

确保在执行之前执行-C my_directory。否则,您将获得当前目录中的文件。

警告:你会得到。/file-name格式的条目。Ext而不是file-name.ext!

如果需要file-name形式的条目。然后,阅读其他答案。

cd DIRECTORY
tar -czf NAME.tar.gz  *

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

art archive:

# tar -czvf mydir.tar.gz mydir

archive:涂

# tar -xf mydir.tar.gz
cd my_directory
tar zcvf ../my_directory.tar.gz *
cd my_directory && tar -czvf ../my_directory.tar.gz $(ls -A) && cd ..

这个方法对我很有用,它包含了所有隐藏文件,而不用把所有文件放在一个名为“。”的根目录中,就像tomoe的回答: