我有一个Node-RED流,它每秒更新一次具有测量值的文件,并且每天创建一个新文件。除当前正在更新的文件以外的所有文件都需要每隔几天删除一次,我希望可以使用Node-Red exec节点使其自动化。
我知道bash命令rm !(filetokeep)
可以做到这一点,但是Node-RED在Bourne shell中对exec节点运行任何输入,因此该命令在sh shell中不起作用。
rm !(filetokeep)
的相应命令在sh shell中是什么?
Node-RED在执行命令时不使用任何外壳程序,它只是将命令传递给exec
,因此不会将外壳程序级文件传递给rm命令。
find命令将满足您的需要,而不必对命令执行的环境进行任何假设:
find . -type f -maxdepth 1 -mtime +1 -exec rm {} \;
这将从当前工作目录(.
)中删除1天前最后修改的所有文件
仅使用此:rm !("filename")