Primeiro, verifique se você está na pasta correta:
if [ -z $PT_MYSQLBACKUPPATH ]; then
echo "No PT_MYSQLBACKUPPATH set. Exit"
exit 1
fi
cd $PT_MYSQLBACKUPPATH
if [ $? != 0 ]; then
echo "cd to PT_MYSQLBACKUPPATH failed. Exit"
exit 1
fi
Você pode remover arquivos com mais de n, no seu caso:
find -mtime +14 -delete
Exclui arquivos com mais de 14 dias.
Mais complicada (definitivamente não é ideal, no entanto) solução para sua pergunta:
# Get list of newest files. If newest files are first, use head -n 14 instead of
# head.
files=('ls | sort | tail -n 14')
# Loop over all files in this folder
for i in *; do
preserve=0;
#Check whether this file is in files array:
for a in ${files[@]}; do
if [ $i == $a ]; then
preserve=1;
fi;
done;
# If it wasn't, delete it (or in this case, print filename)
if [ $preserve == 0 ]; then
echo $i; # test first, then change this to "rm $i"
fi;
done