我有一个备份磁盘,其中包含我想压缩的文件的未压缩版本,以节省该磁盘上的空间。磁盘(包含要压缩的文件)已满(约3TB,有17GB可用空间)。是否有命令或脚本可以运行以遍历磁盘中的每个文件,并在删除未压缩版本时对其进行压缩。例如,如果我有f1 f2 f3之类的文件夹,我只想以f1.tar.gz f2.tar.gz f3.tar.gz结尾,并删除了原始未压缩的文件夹,因此驱动器中有更多空间吗?另外,它也适用于子文件夹吗?
编辑:我希望尽可能地压缩文件而不会遭受损坏的风险。大约有150个父目录,并且大多数都有10到50个子文件夹,其中一些包含已经压缩的文件。作为简化示例,我的文件结构如下所示:
Parent folders:
parent1 parent2 parent3
每个可能都有类似的东西:
child1 child2 child3 file1.zip
每个可能都有
file1 file2.zip file2.tar.gz file3
当然,某些父文件夹仅包含不带子文件夹的文件。我想做的是从bash运行脚本或使用tar来输入命令来压缩父文件夹,使其看起来像:
parent1.tar.gz parent2.tar.gz parent3.tar.gz
同时擦除未压缩的父文件夹时,因此该命令的第一件事将压缩parent1.tar.gz(假设我在同一硬盘驱动器上有足够的空间容纳tarball文件),然后将其擦除,因此文件结构看起来像
parent1.tar.gz parent2 parent3,
那么该命令将继续为parent2和parent3做相同的事情,最终得到以下文件结构:
parent1.tar.gz parent2.tar.gz parent3.tar.gz
如果可能的话,很高兴知道如何将此操作扩展到子文件夹,但是如果操作太复杂或无法节省太多额外的空间,则没有必要。知道一种按每个文件占用的空间顺序对文件进行排序的方法,看看有多少空间可用以自动执行该过程之前,查看需要单独压缩多少个文件,这种方法也很不错,但这也是不需要。
有人可能有一个脚本(或写了一个脚本)。我使用zip
或使用gzip或bzip2的脚本来执行此类操作。两者都有在存档完成后删除文件的规定。
问题是
因此,您必须有足够的可用空间来创建第一个存档,并逐渐获得足够的空间来编写较大的存档。大概您没有很多压缩文件(例如png,jpg,pdf)。否则您将无法获得空间。
如果不是因为空间不足的可能性很大,那么问题就可能只是脚本目录上要压缩/删除的脚本循环。但是,由于3TB的17Gb可用空间,某些目录可能变得相当大。您将必须进行一些分析,以查看这是否干扰了所概述的简单解决方案。
进一步阅读:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句