【发布时间】:2018-03-07 17:16:35
【问题描述】:
我的 Red Hat 服务器上有一个文件夹,其中大约有一个文件夹。来自各种扩展名的 500k 个文件。 这些文件的命名约定基于一个数字,例如:
- 一个123456.csv
- z123456.jpg
- 123456.exe
- 一个234.jpg
- 234.exe
我设计了一个查询,它会生成所有应该删除的数字列表。 假设我每天/每周将此列表导出到 txt 文件中,从列表中显示的文件夹中删除所有文件的最有效方法是什么?
在每个文件夹上运行 for 循环会花费很长时间,因为文件太多。我设法使用以下方法生成了要删除的所有数字的列表,这些数字在此文件夹中有文件:
join <(cat list.txt | sort) <(ls /folder/with/0.5Mfiles | grep -v html$ | sed 's/[a-zA-Z.]*//g' | sort)
但这样我会丢失原始文件名(例如 z123456.jpg)
最有效的方法是什么?
【问题讨论】:
-
这听起来像是一个 XY 问题。 list.txt 中有什么?那是文件名列表还是数字列表?
-
这是一个数字列表。