当前位置: 首页 > 面试题库 >

如何在bash中gzip所有子目录中的所有文件

燕靖
2023-03-14
问题内容

我想在当前位置的子目录之间进行迭代,并分别gzip每个文件。为了在目录中压缩文件,我使用

for file in *; do gzip "$file"; done

但这仅适用于当前目录,而不适用于当前目录的子目录。如何重写以上语句,以便也将所有子目录中的文件压缩?


问题答案:

不需要循环或除find和以外的任何东西gzip

find . -type f ! -name '*.gz' -exec gzip "{}" \;

这将查找当前目录中及其下所有名称不以.gz扩展名结尾的常规文件(即,所有尚未压缩的文件)。它分别gzip在每个文件上调用。

编辑的基础上,从评论user unknown

花括号({})替换为文件名,该文件名直接作为一个单词传递给以下命令,-exec如您在此处看到的:

$ touch foo
$ touch "bar baz"
$ touch xyzzy
$ find . -exec echo {} \;

./foo
./bar baz
./xyzzy


 类似资料:
  • 可能重复: gzip一组目录并创建tar压缩文件 这篇文章描述了如何在一个目录结构中分别gzip每个文件。然而,我需要做一些稍微不同的事情。我需要为某个目录下的所有文件生成一个大的gzip文件。我还需要能够为压缩文件(例如files.gz)指定输出文件名,并覆盖旧的压缩文件(如果已经存在)。

  • 我是Bash新手,正在尝试压缩子文件夹,但它不起作用。 在命令之后 脚本: 我该怎么做?

  • 所以我开始使用Neovim /Spacevim,它真是太棒了! 我仍然在习惯一切,因为我以前从未使用过Vim或类似的东西。 我的问题围绕着在当前打开的项目的所有文件中搜索特定文本。 我正在使用文件管理器,我想知道如何在项目中的所有文件中搜索特定字符串。就像如果我想在当前打开的文件夹/目录中搜索,我该如何去做?主要目标是列出包含此搜索字符串的所有文件。 我已经安装了(以及),但在搜索所有文件中的特定

  • 问题内容: 我在hdfs中有一个文件夹,其中有两个子文件夹,每个文件夹有大约30个子文件夹,最后每个子文件夹都包含xml文件。我想列出所有仅提供主文件夹路径的xml文件。在本地,我可以使用apache commons-io的 FileUtils.listFiles()执行此操作。我已经试过了 但是它仅列出了前两个子文件夹,并且没有进一步介绍。有什么办法可以在Hadoop中做到这一点? 问题答案:

  • 问题内容: 列出1000多个目录和子目录中文件名的最快方法是什么? 编辑; 我使用的当前代码是: 问题答案: 看起来不错(递归遍历目录)瓶颈将是您需要执行的所有文件I / O操作,优化Java不会显示任何实际改进。

  • 问题内容: 我正在创建其中一种方法为的类的过程。 之后砰我的头到键盘的时间,我终于发现,我是谁继承了这个特定的数据库先前编码拼写的单词“ 权限 ”为“ privelages 在数百个文件在MySQL数据库”,因而也处处访问这些“ 特权 ”就是这样拼写的。 是否有Linux操作系统(的方式 Ubuntu的服务器 ),我可以去通过每一个地方的文件夹,并替换“ privelages 用”,“ 特权 ”,