Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Tar目录内容,而不在存档中创建根文件夹_Bash_Tar_Hidden Files - Fatal编程技术网

Bash Tar目录内容,而不在存档中创建根文件夹

Bash Tar目录内容,而不在存档中创建根文件夹,bash,tar,hidden-files,Bash,Tar,Hidden Files,我正在文件夹中的bash脚本中运行以下代码段。这将创建一个没有根文件夹的存档,因为我正在存档其内容的文件夹中运行脚本 tar -pczf $ARCHIVE_NAME --exclude=${ARCHIVE_NAME} --exclude=$(basename ${0}) * Archive Contents: /a/ /b/ /c/ /a_normal_file 很好,但是因为我使用*它没有将隐藏文件归档到即时目录中。我进行了一些搜索,发现我已将其更改为: tar -pczf $ARCHIV

我正在文件夹中的bash脚本中运行以下代码段。这将创建一个没有根文件夹的存档,因为我正在存档其内容的文件夹中运行脚本

tar -pczf $ARCHIVE_NAME --exclude=${ARCHIVE_NAME} --exclude=$(basename ${0}) *

Archive Contents:
/a/
/b/
/c/
/a_normal_file
很好,但是因为我使用*它没有将隐藏文件归档到即时目录中。我进行了一些搜索,发现我已将其更改为:

tar -pczf $ARCHIVE_NAME --exclude=${ARCHIVE_NAME} --exclude=$(basename ${0}) .

Archive Contents:
/./a/
/./b/
/./c/
/./.a_hidden_file
/./a_normal_file
仍然有效,但现在正在创建一个根文件夹,名称为“.”字符。内容就在那里面。如何获得以前的结果,但它仍将隐藏文件归档到即时目录中


提前谢谢

虽然它不会影响归档文件的解包(因为
只是指同一个目录),但如果它困扰您,您可以将通配符从
*
更改为
[^.]**
,以包括所有隐藏的文件


此外,如果您有以
开头的隐藏文件,例如
.a
,您也需要将
。?*
添加到列表中。

虽然它不会影响存档的解包(因为
只是指同一目录),但如果它困扰您,您可以将通配符从
*
更改为
[^]**
也包括所有隐藏文件

此外,如果您有以
开头的隐藏文件,例如
.a
,则还需要将
。?*
添加到列表中。

使用-C,--directory DIR

--directory=$(dirname ${0})
例如:

$ ls -a xxx
.  ..  aaa  .bbb
$ tar cvf test.tar --exclude test.tar -C xxx .
./
./.bbb
./aaa
使用-C,--directory目录

--directory=$(dirname ${0})
例如:

$ ls -a xxx
.  ..  aaa  .bbb
$ tar cvf test.tar --exclude test.tar -C xxx .
./
./.bbb
./aaa

一些解释将有助于回答。我编辑了答案,添加了一个示例。“-C”参数在列出要归档的文件之前更改当前工作目录(因此文件具有相对路径)。“$(dirname${0})”是一个运行脚本的目录(我认为作者希望将文件归档到该目录中)。一些解释将有助于回答这个问题。我编辑了答案并添加了一个示例。“-C”参数在列出要归档的文件之前更改当前工作目录(因此文件具有相对路径)。“$(dirname${0})”是一个运行脚本的目录(我认为作者希望归档该目录中的文件)。