gpt4 book ai didi

linux - tar 创建一个空文件夹,我该如何摆脱它?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:15 25 4
gpt4 key购买 nike

我有以下行

tar -c -v -z -f  "$ARCHIVE_PATH/$3_$fileYear$fileMonth.tar.gz" -C "$ARCHIVE_PATH/tmp" .

在哪里

  • $ARCHIVE_PATH =/opt/colorado/archive/
  • $3 = 进口
  • $文件年份 = 2014
  • $fileMonth = 06

因此该行在 /opt/colorado/archive/中创建了一个名为 IMPORT_201406.tar.gz.tar.gz 文件文件位于 /opt/colorado/archive/tmp/

然而,当我使用 tar -ztvf "opt/colorado/archive/IMPORT_201406.tar.gz" 时,我看到了这个

-rwxr-xr-x root/root        27 2014-06-04 14:20 ./afile.txt
drwxr-xr-x root/root 0 2014-06-04 14:08 ./opt/
drwxr-xr-x root/root 0 2014-06-04 14:08 ./opt/colorado/
drwxr-xr-x root/root 0 2014-06-04 14:08 ./opt/colorado/archive/
drwxrwxr-x [USER]/[USER] 0 2014-06-04 14:09 ./opt/colorado/archive/tmp/
-rwxr-xr-x root/root 712 2014-06-04 14:20 ./twofile.txt
-rwxr-xr-x root/root 383 2014-06-04 14:20 ./random.cvs
-rwxr-xr-x root/root 27 2014-06-04 14:20 ./helloworld.sh
-rwxr-xr-x root/root 7938 2014-06-04 14:20 ./helloworld.py

根据我的理解,如果我没有 -C /opt/colorado/archive/tmp/ 将被添加到每个文件中,因此添加 -C 告诉 tar 首先移动到该目录,我可以在文件列表中看到 为什么要添加 /opt/colorado/archive/tmp/ 文件夹并有办法去除吗?

最佳答案

它会根据您的要求将目录添加到存档中。具体来说,您告诉 tar 将目录 . 存档,这就是它的作用。计算机往往是字面意思。

如果您不想将目录归档,则必须将目录中的文件名传递给 tar。这是一种方法:

(cd "$ARCHIVE_PATH/tmp"; ls) |
tar -cvzf "$ARCHIVE_PATH/$3_$fileYear$fileMonth.tar.gz" -C "$ARCHIVE_PATH/tmp" -T-

或者,您可以从包含文件的目录执行 tar:

cd "$ARCHIVE_PATH/tmp"; tar -cvzf  "$ARCHIVE_PATH/$3_$fileYear$fileMonth.tar.gz" *

我不知道为什么你得到包含其完整路径的目录,而不仅仅是 .,以及为什么它还包含存档中的父目录。我系统上的 tar 版本 (tar (GNU tar) 1.26) 似乎没有这样做。

关于linux - tar 创建一个空文件夹,我该如何摆脱它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24029138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com