【发布时间】:2023-03-04 23:51:01
【问题描述】:
我有一个包含以下文件的目录:
test_fed_1.rds
test_fed_2.rds
test_nonfed_1.rds
test_nonfed_2.rds
它们将按最后一次修改的降序排列。 我需要测试是否有多个文件与“test_fed_”匹配,以便在存在多个与给定模式匹配的文件时删除较旧的文件。
我目前有以下内容,它给出了与目录中模式匹配的文件数:
echo ${#$(find . -maxdepth 1 -name "*test_fed_*")}
给出输出2。
我无法将对此的测试合并到 shell if-else 语句中,该语句查看是否有多个文件与该模式匹配,然后,如果有,则删除较旧的文件,以便只有一个与剩余模式匹配的文件(最近修改的)。
我正在寻找类似的东西:
if [[${#$(find . -maxdepth 1 -name "*test_fed_*")} > 1]]
then ls -t inv_fed_* | tail -n 1 | xargs -d '\n' rm # <- removes last file
fi
谢谢!
【问题讨论】: