标签: archive

如何从存档中解压缩文件而忽略文件名?

我有几个 ZIP 和 RAR 存档,其中存档内的文件名被打乱,并且它们包含无效的文件系统字符,例如 ?-s *-s 或 !-s 或很长的文件和目录名称,这些名称会混淆常用的存档工具,或者它们根本无法创建文件。由于只有内容很重要,我只想将这些档案中的文件提取到平面结构中的单个目录中,使用通用名称,如 file0、file1、file2 等……最简单的方法是什么?

archive filenames

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

tar 错误后无法解压文件

尝试制作tar.gz文件失败后,我无法解压缩文件。似乎我已经失去了它,但这看起来像是一个应该能够从中恢复的微不足道的错误。文件内容真的丢失了吗?我已经试过的各种tarunzip没有成功的组合。

操作系统环境和tar版本:

$cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

$tar --version |grep tar
tar (GNU tar) 1.26
Run Code Online (Sandbox Code Playgroud)

重现步骤:

[weshop@demo test]$ ls
file.txt
[filip@demo test]$ cat file.txt  
hello  

[filip@demo test]$ tar cvzf file.txt file.tar.gz  
tar: file.tar.gz: Cannot stat: No such file or directory  
tar: Exiting with failure status due to previous errors  

[filip@demo test]$ cat file.txt  
 ?Om7??7??'([filip@demo test]$ 

[filip@demo test]$ tar xvzf file.txt  

[filip@demo test]$ cat file.txt  
 ?Om7??7??'([filip@  

[filip@demo test]$ file file.txt  
file.txt: gzip compressed …
Run Code Online (Sandbox Code Playgroud)

tar archive data-recovery

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

文件系统,归档位

我想知道在 linux 文件系统中是否有支持每个文件的存档位

https://en.m.wikipedia.org/wiki/Archive_bit

我需要在本机 fs 中具有相同逻辑的东西,例如 ext3,既不胖也不 ntfs。

filesystems archive

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

有没有办法在不解压缩整个存档的情况下验证 xz 存档的完整性?

我可以在不解压缩的情况下检查存档的完整性吗,因为存档是 64GB。这是我旧笔记本电脑的备份,在我格式化旧笔记本电脑之前,我想验证备份,但解压缩和验证需要很长时间。那么有没有更快的方法呢?

tar archive compression integrity xz

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

有没有办法检查xz压缩文件的压缩率?

在 Windows 中,默认情况下可以看到 zip 文件的压缩率,安装 WinRAR 后,它也支持此功能,但目前我使用的是 linux 并使用 lzma2 和 xz 作为容器压缩了一个文件,但如何在没有的情况下检查压缩率比较原始文件大小和压缩文件大小?甚至有可能吗?

tar archive compression xz

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

在命令行创建 7zip 存档时加密文件列表

使用 创建 7zip 存档时file-roller,会有一个标记为“也加密文件列表”的复选框。它似乎可以工作,因为在打开勾选此复选框创建的存档时,您无法看到文件列表,直到您输入密码(打开存档时会立即提示您输入密码),而您可以看到文件列表,并且只会出现提示尝试访问存档中的文件时输入密码。

7zip的手册页中,我知道可以通过传递开关来创建加密存档p。但这些档案的文件列表未加密。

从命令行创建 7zip 存档时如何对其文件列表进行加密?

archive 7z

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

检查文件是否为存档;如果是,提取

如何检查文件是否为存档,然后使用7z. 我知道我可以通过file命令检查它,但由于它的输出,它在脚本中不起作用。我无法预测它可能是什么类型的存档。我只想做这样的事情:

我可以通过7z提取它吗?
如果是,提取,
如果不是,进一步

通过 bash 脚本。

scripting archive shell-script 7z files

5
推荐指数
3
解决办法
3411
查看次数

将大数据归档为多个部分

我正在处理大数据,我需要归档一个大于 64 TB 的目录。我无法在我的文件系统上创建这么大的文件(存档)。不幸的是,所有提议的在 Linux 上创建多部分存档的解决方案都建议先创建一个存档,然后使用split命令将其拆分为较小的文件。

我知道 fe 7zip 是可能的,但不幸的是,我不得不使用 RedHat 6 中内置的工具 - tar、gzip、bzip2 ...

我想知道创建一个脚本来询问用户的最大音量大小。它会用 gzip 归档每个文件,拆分那些太大的文件,然后手动将它们合并到许多具有所选大小的 tars 中。这是一个好主意吗?

有没有其他可能用基本的 Linux 命令来实现大档案划分?

更新:

我已经在限制最大文件大小的文件系统上测试了该解决方案并且它有效。将tar输出直接重定向到split命令的管道已按预期工作:

tar -czf - HugeDirectory | split --bytes=100GB - MyArchive.tgz.

创建的文件已经很小,将它们合并在一起时不会创建超大文件:

cat MyArchive.tgz* | tar -xzf -

rhel tar archive gzip

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

解压到与存档同名的文件夹

我有很多 rar 文件

- Folder/
--- Spain.rar
--- Germany.rar
--- Italy.rar
Run Code Online (Sandbox Code Playgroud)

所有文件都不包含根文件夹,所以它只是文件。

提取时我想实现的是这种结构:

- Folder/
-- Spain/
---- Spain_file1.txt
---- Spain_file2.txt
-- Germany/
---- Germany_file1.txt
---- Germany_file2.txt
-- Italy/
---- Italy_file1.txt
---- Italy_file2.txt
Run Code Online (Sandbox Code Playgroud)

这样就创建了一个具有存档名称的文件夹,并将存档解压缩到其中。

我在另一个线程中找到了这个 bash 示例,但它对我不起作用,它试图创建一个以所有文件为名称的文件夹。

#!/bin/bash

for archive in "$(find . -name '*.rar')"; do
  destination="${archive%.rar}"
  if [ ! -d "$destination" ] ; then mkdir "$destination"; fi
  unrar e "$archive" "$destination"
done
Run Code Online (Sandbox Code Playgroud)

任何想法我怎么能做到这一点?

archive shell-script rar

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

unzip 使用什么方法在存档中查找单个文件?

假设我创建了 100 个文件,每个文件的大小为 30MB 的随机文本数据。现在我创建一个压缩率为 0 的 zip 存档,即zip dataset.zip -r -0 *.txt. 现在我只想从这个存档中提取一个文件。

如上所述这里,也有解压/从归档中提取文件的方法有两种:

  1. 查找文件末尾并查找中央目录。然后使用它来快速随机访问要提取的文件。(摊销O(1)复杂度)
  2. 查看每个本地标头并提取匹配的标头。(O(n)复杂性)

unzip 使用哪种方法?从我的实验来看,它似乎使用了方法 2?

zip archive

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