标签: tar

如何解压缩我不小心保存为foldername.gz而不是foldername.tar.gz的文件文件夹

我不知道我是怎么做到的。我必须擦除我的专用服务器并重新启动,所以我首先将所有内容备份到远程 VPS;在此过程中,我将一个充满其他文件夹的文件夹压缩为foldername.gz,而不是使用tar,因此当我现在提取它时,它会提取为单个文件,而不是一个充满文件夹的文件夹。我尝试重命名为foldername.tar.gz,但提取时给出:

tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors
Run Code Online (Sandbox Code Playgroud)

当我使用它时file foldername.gz,它给了我:

foldername.gz: gzip compressed data, was "2a863233-fac4-4611-8bbd-76416e58e5d4.dat", last modified: Thu Dec 9 10:36:04 2021, from Unix, original size modulo 2^32 2629632

编辑,这给出了file -z foldername.gzfoldername.gz: gzip compressed data, from FAT filesystem (MS-DOS, OS/2, NT) (gzip compressed data, was "2a863233-fac4-4611-8bbd-76416e58e5d4.dat", last modified: Thu Dec 9 10:36:04 2021, from Unix)

tar gzip data-recovery

2
推荐指数
1
解决办法
652
查看次数

删除 GNUSparseFile.0 目录安全吗?

在查看一些文件系统以了解哪些文件系统消耗了磁盘空间时,我发现了一个名为GNUSparseFile.0. 我无法轻易查明其内容是否被使用。它可能是解压后暂时剩下的东西吗?操作系统是 FreeBSD,因此可能已使用 BSD 解压tar

freebsd tar bsd gnu-tar

2
推荐指数
1
解决办法
163
查看次数

在带有@(at 符号)的文件上使用 tar

我正在尝试使用tar -xvf格式(其中 * 是任何单词字符)*@*@*@*.tar.gz提取 tarball ,但我认为 tar 正在尝试在远程位置找到该文件。我得到的错误是命令tar -xzvf tasf423@2012-02-22\@00:03:04\@ja41nf.tar.gz

tar (child): Cannot connect to 2012-02-22@00: resolve failed
Run Code Online (Sandbox Code Playgroud)

我尝试使用反斜杠来转义它,甚至尝试用 %40 替换 @ 符号,但这些似乎都不起作用。有没有办法使用名称中带有 @ 的 tar 命令来提取 tarball?

linux tar terminal

1
推荐指数
1
解决办法
1015
查看次数

Unix“tar”程序是哪一年发布的?

这是一个简单的问题:Unix“tar”(TApe ARchive)是哪一年问世的?我无法通过互联网搜索找到答案。

linux tar

1
推荐指数
1
解决办法
146
查看次数

命令替换 grepping ls 输出导致错误

我正在尝试使用命令替换制作 tar.tgz 文件

有 2012 年 8 月 17 日的备份

-rw-r----- 1 ossec  502 804M Aug 17  2012 BKPMDISINT_i6nir20j.F_bkp
-rw-r----- 1 ossec  502 2.7G Aug 17  2012 BKPSYFINT_i5nir20j.F_bkp
-rw-r----- 1 ossec  502 3.9G Aug 17  2012 BKPMSFFINT_i4nir20j.F_bkp
-rw-r----- 1 ossec  502  28M Aug 17  2012 c-651746692-20120817-00
-rw-r----- 1 ossec  502 2.0G Aug 17  2012 ALG_KLPFINT_ianir576.alg
-rw-r----- 1 ossec  502 1.5G Aug 17  2012 ALG_KLPFINT_i8nir576.alg
-rw-r----- 1 ossec  502  37M Aug 17  2012 ALG_KLPINT_ibnir64h.alg
-rw-r----- 1 ossec  502 2.2G Aug 17 …
Run Code Online (Sandbox Code Playgroud)

shell tar backup files command-substitution

1
推荐指数
1
解决办法
1127
查看次数

用tar提取硬链接文件

我正在尝试获取 tar 文件夹中所有文件的列表,将它们全部显示在带有下载文件链接的页面上。单击单个文件,它将被下载。除了硬链接文件外,一切正常

我用来提取单个文件的命令是

tar --extract --file=abc.tar.xz abc.file
Run Code Online (Sandbox Code Playgroud)

但是如果文件是硬链接,那么它会给我错误,有没有办法获得硬链接文件?

tar hard-link

1
推荐指数
1
解决办法
1877
查看次数

从嵌套的 tar.gz 文件复制文件

我有一种情况,我想从嵌套的 tar.gz 中提取文件。.tar.gz 的结构如下

  • 测试.tar.gz
    • 数据1
      • 数据2
        • 数据3
          • test2.tar.gz
            • 数据4
              • 数据5
                • 测试日志

我只想从test.tar.gz文件中提取test.log文件。我看过这篇文章,我们可以用它提取 tar.gz 文件,但不能在嵌套级别中提取。

我正在添加 tar tfz data1.tar.gz 的输出 文件夹结构可能与手动输入上述结构略有不同。


data1/.
data1/META.json
data1/TEMP
data1/TEMP/temp-2
data1/TEMP/temp-2/1-chksum.txt
data1/TEMP/temp-2/1
data1/TEMP/temp-2/1/otherfiles
data1/TEMP/temp-2/1/otherfiles/2016_06_24.tar.gz
Run Code Online (Sandbox Code Playgroud)

因此test.log文件存在于2016_06_24.tar.gz内的嵌套文件夹中

tar archive

1
推荐指数
1
解决办法
691
查看次数

如何将家庭备份恢复到几乎全新的 Debian?

我正在考虑如何将 .tar.gz HOME 备份安全地恢复到几乎一个新的 Debian 系统中(某些文件可以存在,因此应该保留rsync -u)。我的主 PC 坏了,所以我必须使用备份 Debian 系统,但我需要主系统的 HOME 备份(仅以下主文件)。系统特点

  • $HOME/home/masi/

以 root 身份进行家庭备份的代码

#1. [但使用圆形符号链接失败]

# http://unix.stackexchange.com/a/291720/16920
nice tar czf /media/masi/ext4Masi/backup_home_20.12.2016.tar.gz $HOME/
Run Code Online (Sandbox Code Playgroud)

我的目录中有符号链接。我注意到 tarball 不包含所有目录,例如$HOME/Documents/和/或/home/masi/Documents/. 该目录有许多符号链接,可能还有一些圆形符号链接。然后 tarball 再次包含$HOME/Desktop/并且$HOME/Downloads不应包含任何循环符号链接,并且Downloads目录根本没有符号链接。

#2. [被拒绝,因为会导致大量重复文件]

tar czf --dereference \ 
   /media/masi/ext4Masi/backup_home_20.12.2016.tar.gz $HOME/
Run Code Online (Sandbox Code Playgroud)

#3. ...

使用备份的代码 [已弃用;使用tar xzfC ...]

我认为rsync这里没有删除是正确的选择,但可以-u选择跳过目标文件已经存在并且日期晚于源文件的任何文件 (要求几乎); 伪代码,因为我认为.tar.gz不能在那里输入

# http://unix.stackexchange.com/a/287016/16920
rsync -rtvuc --progress …
Run Code Online (Sandbox Code Playgroud)

tar debian data-recovery

1
推荐指数
1
解决办法
112
查看次数

光伏如何运作?

以下命令如何工作?

pv file.tar.gz | tar -xz
Run Code Online (Sandbox Code Playgroud)

根据我的理解,管道运算符|创建 apipestdoutofpv映射到O_WRONLY管道的末尾,tar'sstdin映射到O_RDONLYwith bothO_WRONLYO_RDONLYexisting inpipefs

这一切都很好,但以下内容正在打印到我的屏幕上:

31.1MiB 0:00:05 [6.17MiB/s] [===================================>] 100%
Run Code Online (Sandbox Code Playgroud)

据我所知,这个进度条不是由生成的,tar因为如果它是并且我不需要它,它可以通过一个选项获得pv,因此pv必须生成它。但是如何? pvstdout映射到O_WRONLY.

我还读到一些 shell 使用套接字对代替管道,pipefs并且套接字对是双向的。但这似乎会占用stdinstdout两个命令,直到一个或两个命令完成。在上面的例子中不是这种情况,因为进度条是实时更新的。

tar pipe pv

1
推荐指数
1
解决办法
1499
查看次数

解压并重命名 zip 中的特定目录 --- 一次操作

假设我有archive.zip一个名为的目录myDir(它实际上是其中唯一的目录),并且该目录包含一个名为x.

unzip archive.zip -d ~/ 带来:

~/myDir/x
Run Code Online (Sandbox Code Playgroud)

mv ~/myDir ~/myRenamedDir,带来:

~/myRenamedDir/x
Run Code Online (Sandbox Code Playgroud)

有没有办法myDir用提取重命名 my ,所以结果将是~/myRenamedDir/x,直接,不需要mv

tar directory zip stdout mv

1
推荐指数
1
解决办法
4730
查看次数