【发布时间】:2021-09-11 15:40:50
【问题描述】:
在colab中,我解压了一个文件,但是根据colab的设置,现在目录下的文件太多了。是否有命令行可以删除目录的最后 x 个文件?
我知道我可以使用 rm -rf * 删除此存储库中的所有文件,但我只想删除存储库的最后 100 个文件。
【问题讨论】:
-
“最后一个”是什么意思?您想按名称、mtime、大小或其他指标排序吗?
标签: linux command-line rm
在colab中,我解压了一个文件,但是根据colab的设置,现在目录下的文件太多了。是否有命令行可以删除目录的最后 x 个文件?
我知道我可以使用 rm -rf * 删除此存储库中的所有文件,但我只想删除存储库的最后 100 个文件。
【问题讨论】:
标签: linux command-line rm
尝试使用 globing 或更好的 REGEX。
最简单的方法是使用星号 * 和一些区分示例:rm *.txt # 将删除所有以 .txt 结尾的文件或rm document*.local # 将删除所有以 .txt 结尾的文件以 document 开头并以 .local
更好的方法是按属性搜索文件并在结果上执行命令,但解释起来有点复杂,所以检查一下。 https://www.cyberciti.biz/faq/linux-unix-how-to-find-and-remove-files/
【讨论】:
使用shell数组和参数扩展:
all_files=(*)
printf '%s\n' "${all_files[@]: -100}" | nl
#rm "${all_files[@]: -100}"
如果最后一行看起来像是要删除的正确文件列表,请取消注释。
冒号和减号之间的空格是为了消除其他形式的参数扩展的歧义。
【讨论】: