gpt4 book ai didi

linux - 删除 bash 脚本中除最新 3 个以外的所有文件

转载 作者:IT王子 更新时间:2023-10-29 00:24:17 24 4
gpt4 key购买 nike

问题:如何删除目录中除最新的 3 个文件之外的所有文件?

查找最新的 3 个文件很简单:

ls -t | head -3

但我需要找到除最新的 3 个文件之外的所有文件。我该怎么做,以及如何在同一行中删除这些文件而不为此创建不必要的 for 循环?

为此,我正在使用 Debian Wheezy 和 bash 脚本。

最佳答案

这将列出除最新三个之外的所有文件:

ls -t | tail -n +4

这将删除那些文件:

ls -t | tail -n +4 | xargs rm --

这也将列出点文件:

ls -At | tail -n +4

并用点文件删除:

ls -At | tail -n +4 | xargs rm --

但要注意:当文件名包含有趣的字符(如换行符或空格)时,解析 ls 可能很危险。如果您确定您的文件名不包含有趣的字符,那么解析 ls 是非常安全的,如果它是一次性脚本则更是如此。

如果您正在开发重复使用的脚本,那么您绝对不应该解析 ls 的输出并使用此处描述的方法:http://mywiki.wooledge.org/ParsingLs

关于linux - 删除 bash 脚本中除最新 3 个以外的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26765163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com