提取并删除目录中的所有.gz- Linux [已关闭]

uyto3xhc  于 2023-05-28  发布在  Linux
关注(0)|答案(8)|浏览(166)

**已关闭。**此问题为not about programming or software development。目前不接受答复。

这个问题似乎不是关于a specific programming problem, a software algorithm, or software tools primarily used by programmers的。如果你认为这个问题与another Stack Exchange site的主题有关,你可以留下评论,解释在哪里可以回答这个问题。
5天前关闭。
社区在5天前审查了是否重新打开此问题,并将其关闭:
原始关闭原因未解决
Improve this question
我有一个目录。它有大约500K .gz文件。
如何解压缩该目录中的所有.gz并删除.gz文件?

ubbxdtey

ubbxdtey1#

这应该可以做到:

gunzip *.gz
c8ib6hqw

c8ib6hqw2#

@techedemic是正确的,但缺少'.'来提及当前目录,并且此命令将遍历所有子目录。

find . -name '*.gz' -exec gunzip '{}' \;
0ejtzxu1

0ejtzxu13#

显然有不止一种方法可以做到这一点。

# This will find files recursively (you can limit it by using some 'find' parameters. 
    # see the man pages
    # Final backslash required for exec example to work
    find . -name '*.gz' -exec gunzip '{}' \;

    # This will do it only in the current directory
    for a in *.gz; do gunzip $a; done

我相信还有其他方法,但这可能是最简单的。
要删除它,只需在适用目录中执行rm -rf *.gz操作

pexxcrt2

pexxcrt24#

解压缩当前目录及其子目录中的所有gz文件:

find . -name "*.gz" | xargs gunzip
wqsoz72f

wqsoz72f5#

如果要提取单个文件,请用途:
gunzip file.gz
它将解压缩文件并删除.gz文件。

z3yyvxxp

z3yyvxxp6#

for foo in *.gz
do
  tar xf "$foo"
  rm "$foo"
done
c86crjj0

c86crjj07#

尝试:

ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 tar xvfz

然后尝试:

ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 rm

这将解压缩当前目录中的所有. tar.gz文件,然后删除所有. tar.gz文件。如果你想要一个解释,“|“获取前面命令的stdout,并将其用作后面命令的stdin。使用“man command”(不带引号)来说明这些命令和参数的作用。或者,你可以在网上搜索。

lztngnrs

lztngnrs8#

用于删除每个目录中的所有.gz文件。请使用这些命令
步骤:1
cd /
步骤:2
find . -type f -iname *.gz -delete

相关问题