【问题标题】:Remove the last X files of a directory删除目录的最后 X 个文件
【发布时间】:2021-09-11 15:40:50
【问题描述】:

在colab中,我解压了一个文件,但是根据colab的设置,现在目录下的文件太多了。是否有命令行可以删除目录的最后 x 个文件?

我知道我可以使用 rm -rf * 删除此存储库中的所有文件,但我只想删除存储库的最后 100 个文件。

【问题讨论】:

  • “最后一个”是什么意思?您想按名称、mtime、大小或其他指标排序吗?

标签: linux command-line rm


【解决方案1】:

尝试使用 globing 或更好的 REGEX。

最简单的方法是使用星号 * 和一些区分示例:rm *.txt # 将删除所有以 .txt 结尾的文件或rm document*.local # 将删除所有以 .txt 结尾的文件以 document 开头并以 .local

结尾

更好的方法是按属性搜索文件并在结果上执行命令,但解释起来有点复杂,所以检查一下。 https://www.cyberciti.biz/faq/linux-unix-how-to-find-and-remove-files/

【讨论】:

    【解决方案2】:

    使用shell数组和参数扩展:

    all_files=(*)
    printf '%s\n' "${all_files[@]: -100}" | nl
    #rm "${all_files[@]: -100}"
    

    如果最后一行看起来像是要删除的正确文件列表,请取消注释。

    冒号和减号之间的空格是为了消除其他形式的参数扩展的歧义。

    参考:3.5.3 Shell Parameter Expansion

    【讨论】:

      猜你喜欢
      • 2016-06-07
      • 1970-01-01
      • 2011-03-27
      • 2021-01-11
      • 2013-05-30
      • 2013-05-20
      • 2017-10-13
      • 2023-01-07
      • 1970-01-01
      相关资源
      最近更新 更多