如何压缩文件夹而不离开原始文件夹且不删除原始文件夹

如何压缩文件夹而不离开原始文件夹且不删除原始文件夹

SQL目录下我们只有tmp文件夹(tmp文件夹使用59G)

是否可以压缩文件夹 tmp 而不保留原始 tmp 文件夹? ,因此压缩将在原始文件夹上进行

文件夹用法:

 root@serverE1:/var/backup/SQL #  du -sh *

 59G     tmp

所以压缩后我只会看到这个:(8G只是示例)

 8G   tmp.tar.gz

答案1

有两个问题需要解决:

  • 如何删除文件而不干扰您的输出,以及
  • 创建输出时将其放置在何处。

如果您碰巧在 中没有任何点文件/var/backup/SQL,这很简单:

  • 只需创建以“.”开头命名的输出,
  • 使用选项添加到 tar 文件--remove-files,并且
  • 将输出重命名为tmp.tar.gz“完成时”。

就像是

cd /var/backup/SQL
tar cfz .tmp.tar.gz --remove-files * && mv .tmp.tar.gz tmp.tar.gz

如果你有点文件,那么您可以构建要压缩的文件列表,然后使用该列表构建 tar 文件。使用 Linux,您可以使用-T( --files-from) 选项来读取此列表,例如,

cd /var/backup/SQL
find . -type f >/tmp/list
tar czf tmp.tar.gz --remove-files --files-from /tmp/list

(有人肯定会建议进程替换而不是临时文件,但这有限制大小的缺点,这可能是一个问题)。

答案2

使用文件管理器。示例使用mc, 导航到SQL/临时表, 打F2, ("压缩当前子目录(tar.gz)“), 然后3, 然后进入,等待归档,上一级,(注意新文件SQL/tmp.tar.gz文件),使用F8删除tmp文件夹。

mc将压缩以 ' 开头的所有文件和目录'也是如此。)

相关内容