始终在目录中保留 n 个最新文件
Always keep n newest files in dir
我正在尝试创建一个单行程序,它应该从目录中删除多余的文件以防止它消耗太多 space。
ls -r --sort=time | head -${{ls | wc -l} - n} | xargs rm -f
n 应该代表我要保留在目录中的文件数。
我在这里做错了,不知道是什么。有人可以帮忙吗?
${{...}}
有点像 TCL 什么的。这肯定是无效的 shell 脚本。
在 Bash 中(但在 Bourne shell 中则不行)你可以使用 (( ... ))
来表示算术,我想这就是你想要“- n”做的。
进程替换的语法是 $(ls | wc -l)
带圆括号。
合并这两个,你可能会得到类似 (($(ls | wc -l) - n))
的东西,但你真的 should not be parsing ls
output 无论如何。查看此问题的许多重复项之一以获得更好的方法。
( 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 <-- 这里
感谢回复。
我正在尝试创建一个单行程序,它应该从目录中删除多余的文件以防止它消耗太多 space。
ls -r --sort=time | head -${{ls | wc -l} - n} | xargs rm -f
n 应该代表我要保留在目录中的文件数。
我在这里做错了,不知道是什么。有人可以帮忙吗?
${{...}}
有点像 TCL 什么的。这肯定是无效的 shell 脚本。
在 Bash 中(但在 Bourne shell 中则不行)你可以使用 (( ... ))
来表示算术,我想这就是你想要“- n”做的。
进程替换的语法是 $(ls | wc -l)
带圆括号。
合并这两个,你可能会得到类似 (($(ls | wc -l) - n))
的东西,但你真的 should not be parsing ls
output 无论如何。查看此问题的许多重复项之一以获得更好的方法。
( 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 <-- 这里
感谢回复。