始终在目录中保留 n 个最新文件 [重复]
Posted
技术标签:
【中文标题】始终在目录中保留 n 个最新文件 [重复]【英文标题】:Always keep n newest files in dir [duplicate] 【发布时间】:2015-02-06 09:01:09 【问题描述】:我正在尝试创建一个单行,它应该从 dir 中删除多余的文件,以免占用过多的空间。
ls -r --sort=time | head -$ls | wc -l - n | xargs rm -f
n 应该代表我想保留在目录中的文件数。
我在这里做错了,不知道是什么。有人可以帮忙吗?
【问题讨论】:
【参考方案1】:那个$...
看起来有点像TCL什么的。它肯定不是有效的 shell 脚本。
在 Bash 中(但不是在 Bourne shell 中),您可以使用 (( ... ))
进行算术表达式,我猜这就是您想要“-n”做的事情。
进程替换的语法是$(ls | wc -l)
,带圆括号。
合并这两者,你最终可能会得到类似(($(ls | wc -l) - n))
的东西,但无论如何你真的是should not be parsing ls
output。查看此问题的众多重复项之一以获取更好的方法。
【讨论】:
【参考方案2】:( ls -t | head -n 25 ; ls ) | sort | uniq -u | sed -e 's,.*,"&",g' | xargs rm
帮我搞定。
Delete all but the most recent X files in bash
感谢回复。
【讨论】:
以上是关于始终在目录中保留 n 个最新文件 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何确保 maven 项目的分发文件的名称与某个版本无关,而是始终包含最新的 [重复]