我在/ var / log /目录中有msgbak-.tar.gz文件
如何使用ls -lrt
命令列出所有这些内容
我使用了以下脚本,但它没有工作
LGNAME="/var/log/msgbak"
touch $LGNAME-$(date)
$(ls -lrt $LGNAME*)
OR
$(ls -lrt {$LGNAME*})
请问任何帮助指针/指标?
我正在尝试跟随,
LGNAME="/var/log/msgbak"
MAX_LOG_BACKUP=10
for taredfile in $(ls -lrt $LGNAME*)
do
if [ $(ls -lrt $LGNAME* | wc -l) -lt "$MAX_LOG_BACKUP" ]; then
echo
break;
fi
rm $taredfile
done
这就是我的尝试,我知道这不是最好的,但我不知道那里出了什么问题。
答案 0 :(得分:1)
以下方法可以正确地获取此类文件的数量。
ls $LGNAME* | wc -l
如果您希望它们以反向时间戳顺序排序,这应该可以正常工作:
ls -rt $LGNAME*
要回答更一般的问题,你可以做这样的事情。我不确定你需要做什么修改才能使它在非bash shell中工作。
LGNAME="/var/log/msgbak"
count=$(ls $LGNAME* | wc -l)
if [ "$count" -gt 10 ]; then
ls $LGNAME* | head -n 1 | xargs rm
fi