如何使用有限的命令在远程主机上递归解压缩 gz 文件?

For*_*aki 6 ssh remote gzip

.jpg.gz在一个目录中有一堆文件需要解压缩。

我知道解压命令是:

tar -xzvf FileNameHere.jpg.gz

但是是否有一个标志可以递归解压缩目录中的文件?我有一百多个压缩文件,我不想手动解压缩每个文件。

此外,由于我通过 SSH 连接到托管服务,因此我只能使用以下命令:

arch
bzip2
cal
cksum
cmp
cp
crontab
basename
cd
chmod
ls
date
df
du
dos2unix
unix2dos
file
getfacl
gzip
head
hostid
tail
mkdir
mv
nslookup
sdiff
tar
uptime
wget
whois
unzip
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 9

要提取文件,您需要使用gzip

gzip -d *.jpg.gz
Run Code Online (Sandbox Code Playgroud)

您提到递归地执行此操作;鉴于您没有find,您必须依次访问每个目录并运行上述命令。


Dig*_*uma 8

如果您要访问的主机的 shellssh是 bash 版本 >= 4.0,您可以启用 globstar 选项。启用后,**glob 将递归匹配子目录。所以以下应该做你需要的:

shopt -s globstar
for gz_file in **/*.jpg.gz; do
    gzip -d "$gz_file"
done
Run Code Online (Sandbox Code Playgroud)

无需手动递归到子目录中。