如何删除Bourne shell中特定文件以外的所有文件?

问题描述 投票:0回答:2

我有一个Node-RED流,它每秒更新一次具有测量值的文件,并且每天创建一个新文件。除当前正在更新的文件以外的所有文件都需要每隔几天删除一次,我希望可以使用Node-Red exec节点使其自动化。

我知道bash命令rm !(filetokeep)可以做到这一点,但是Node-RED在Bourne shell中对exec节点运行任何输入,因此该命令在sh shell中不起作用。

rm !(filetokeep)的相应命令在sh shell中是什么?

linux sh node-red
2个回答
1
投票

Node-RED在执行命令时不使用任何外壳程序,它只是将命令传递给exec,因此不会将外壳程序级文件传递给rm命令。

find命令将满足您的需要,而不必对命令执行的环境进行任何假设:

find . -type f -maxdepth 1 -mtime +1 -exec rm {} \;

这将从当前工作目录(.)中删除1天前最后修改的所有文件


0
投票

仅使用此:rm !("filename")

© www.soinside.com 2019 - 2024. All rights reserved.