![Gunzip 文件范围](https://linux22.com/image/47351/Gunzip%20%E6%96%87%E4%BB%B6%E8%8C%83%E5%9B%B4.png)
我正在从一台服务器到另一台服务器运行 .gz 文件的长副本。同时,我想解压已经复制的文件。例如,a
以 开头的 al 文件名 到 以 . 开头的文件名c
。
我怎样才能做到这一点?
答案1
最简单的方法是使用 shell。假设有一个相对现代的 shell(例如 bash),你可以这样做
gunzip [a-c]*gz
答案2
你的意思是
for file in [a-c]*.gz; do gunzip "$file"; done
甚至gunzip [a-c]*.gz
(感谢@terdon 的提醒)。
如果您这样做只是为了减少网络流量,那么压缩连接流会更有意义,或者更好的是,使用rsync
.
答案3
您可以安全地解压缩已完全复制的所有文件。所以任务是确定哪些文件是完整的。
我们假设在复制开始之前该目录是空的,并且解压缩的文件被写入到另一个目录中。确定哪些文件已准备好解压缩的一种可能性是等待下一个文件。
如果这对您来说是一种相关的方法,那么我可以为此提供一些代码。