我让数据生成脚本运行时间过长,现在有 200,000 多个文件,我需要将其减少到 1000 左右。从 Linux 命令行,是否有一种简单的方法可以删除除 1000 个文件之外的所有文件,其中将保留这些文件将不依赖于文件名或任何其他属性?
rld*_*ld. 18
代码:
find /path/to/dir -type f -print0 | sort -zR | tail -zn +1001 | xargs -0 rm
Run Code Online (Sandbox Code Playgroud)
解释:
/path/to/dir与find;
print0: 使用 \0(空字符)作为行分隔符;所以包含空格/换行符的文件路径不会破坏脚本sort;
-z: 使用\0(空字符)作为分隔符,而不是\n(换行符)-R: 随机顺序tail;
-z: 将列表视为零分隔(与 相同sort)-n +1001: 显示从 1001 开始的行(即省略前 1000 行)xargs -0 rm - 删除剩余的文件;
-0: 再次以零分隔为什么它比quixotic 的解决方案更好*:
find。find\n由于某种原因不以(换行符)结尾的。* - 归功于quixotic for | sort -R | head -1000,给了我一个起点。
| 归档时间: |
|
| 查看次数: |
8812 次 |
| 最近记录: |