如何在Linux目录中及其所有子目录中递归删除文件类型

递归删除文件类型

当然,在某些情况下,您已经验证了几个文件夹中文件的类型无用,该文件只占用很少的空间,但是您根本不想在计算机上使用它。 例如,在macOS中创建了一些文件 .DS_Store 保存有关文件夹图标,其大小和位置的信息,并且在Windows中存在等效的desktop.ini。 如果我们有一个充满子目录的目录并且想要删除这些文件或其他类型的文件,该怎么办? 我们要做的是 递归擦除 他们每个人。

这是我们可以对所有类型的文件执行的操作。 例如,如果我们有一个充满音乐的硬盘驱动器,我们有一个下载了封面的播放器,但我们不想保存它们,则可以使用下面将详细介绍的相同命令将其删除。 当然,考虑到我们将通过终端递归删除目录文件及其子目录,并且这些文件将永远丢失, 小心一点也没什么坏处 和/或在删除我们要删除的所有内容之前进行测试。

从终端递归删除某种类型的文件

示例macOS .DS_Store文件的命令如下:

cd ruta/a/directorio
find . -name '*.DS_Store' -type f -delete

在前面的命令中,第一个命令会将我们放置在我们要开始的文件夹中,即,其中包含我们要删除的所有.DS_Store文件。 第二个是将从.NET中删除所有.DS_Store文件的文件。 第一个文件夹及其子文件夹 或目录。 如果要删除前面提到的音乐文件夹中的照片,则必须将扩展名放在引号之间,例如“ * .jpg”。

老实说,当我停止使用Cantata作为默认音乐播放器的那一天,我将做这件事。 Cantata会创建和隐藏信息文件,这些信息文件的名称与在其前面带有圆点和低杠的歌曲的名称相同(例如,._ Song)。 当我需要它时,我将必须使用的命令是 找。 -name'._ *'-type f -delete.

这个小指南有没有帮助您从终端递归删除文件?

Grep命令
相关文章:
Grep命令:从终端查找文本的强大工具

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   塞巴斯蒂安·卡斯特罗(Sebastian Castro)

    谢谢,但是您的代码中有错误。 您需要使用正则表达式“ *”,即“ * .DS_STORE”。 我建议您更正它。 好吧,对于那些对bash不太了解的人,您提供的代码将行不通。 你好!