我刚刚开始在 Mac 终端上进行学校作业。
我的问题是:我必须编写哪个命令才能仅使用终端提取 .zip 或 .rar 文件的文件?打开所有类型的压缩文件都是同一个命令吗?
提前致谢。
情况
我有大量(大约 1 TB)的混合数据(照片、文档、pdf 和其他类型的文件格式)。所有数据都排列在许多文件夹中。由于我的笔记本电脑驱动器不断充满,我必须将这些数据移动到某种长期存储中。我决定将这些数据传输到一个常规外部硬盘驱动器以及一个NAS 设备。
问题
将所有内容压缩并传输到这些设备是个好主意吗?我计划使用 7Zip 来完成此过程。它可能会节省一些空间也可以提高传输速率。此外还可以避免任何防病毒软件意外删除文件。
进一步的问题
上次我传输如此大的数据时,有一些文件由于某些错误或损坏而无法传输。如果压缩存档发生类似的情况,那么我就完蛋了。
也欢迎提出有关存储和传输此类大数据的任何其他更好方法的建议。
我开始使用 Ranger 文件管理器,但我错过了 Total(和 Double)Commander 中我真正喜欢的一个很好的功能。
它可以像普通文件夹一样导航到 zip 文件(和其他类型的存档),并保持在存档中复制、移动等的能力。
使用 Ranger 可以(轻松)实现这一目标吗?
我想创建一个 AES256 加密的 zip 文件夹。我使用的是 Mac,我想创建 zip 文件并将其存储在外部驱动器中。我想对文件进行 AES256 加密,以防万一我丢失了外部驱动器,没有人可以读取它。
我正在使用命令
7za a -tzip '-pPASSWORD' -mem=AES256 personal_data.zip /Users/myuser/personal_data
该目录/Users/myuser/personal_data内有子文件夹和文件。
当我提取时,目录结构不会保留,它会在我提取位置的根目录中提取所有内容。
我使用下面的命令来提取。
7za e personal_data.zip
我有两个问题:
谢谢
我使用“diff”命令比较在完全相同的起始文件上使用 zip 生成的两个压缩文件,它们被报告为不同。但是,当我解压缩它们并使用“diff”命令时,没有显示任何差异。我在 zip 和 gzip 中都注意到了这一点。
有时我会做一个命令,比如
unzip tons_of_files.zip
Run Code Online (Sandbox Code Playgroud)
我会忘记把 -d 指向一个子目录。这会导致当前文件夹充满大量与现有文件混合的文件。
删除所有这些新文件和/或将它们移动到新目录的最佳方法是什么?我想避免手动检查目录并确定文件是存档的一部分还是已经存在。
我经常使用 wget 从网上下载 tarball 和 zip 文件,然后 untar then 或 gunzip 它们。我愿意:
wget google.com/somefile.zip
unzip somefile.zip
rm somefile.zip
Run Code Online (Sandbox Code Playgroud)
有没有办法让我在 wget-ting 时自动将 zip 文件传递给 tar 或解压缩?在伪代码中:
wget google.com/somfile.zip && unzip
Run Code Online (Sandbox Code Playgroud) 我拿了 3 个测试文件并压缩了它们。我再次使用 3 个测试文件对它们进行了 RARred。每个 .RAR 档案都小于相应的 .ZIP 档案。
RAR 压缩算法是否提供比 ZIP 压缩算法更好的压缩率?
前几天我下载了一个包含 11 个部分的视频。今天我试图提取它,但它告诉我 part04 已损坏。所以我检查了“保留损坏的文件”,但当然它只给了我视频的开头。所以我想知道是否可以从 part05 开始提取它。如果不能这样做,有没有人知道可能修复损坏的存档的方法?谢谢你。
注意:我重新下载了 part04 还是不行。它的大小也合适,所以我知道没有下载错误。
我创建这两个 zip 文件大约相隔 24 小时。
$ ls -l /tmp/*.zip
-rw-rw-r-- 1 scott scott 1401289 Mar 21 20:11 /tmp/inc1.zip
-rw-rw-r-- 1 scott scott 1401289 Mar 22 19:29 /tmp/inc2.zip
Run Code Online (Sandbox Code Playgroud)
您可以看到它们的大小相同,因为被压缩的目录没有改变。
但是,这些文件在过去 24 小时内已被查看过,因此它们的访问时间已更改。因此,我无法使用 diff 或 cmp 来比较 zip。
可靠地比较它们的内容的方法是什么?例如,我正在考虑比较输出
ls -l <file> | awk '{print $5}'
Run Code Online (Sandbox Code Playgroud)
在这两个文件上。有更好的解决方案吗?