Gostaria de salvar a listagem de arquivos em um arquivo temporário e contar as linhas antes de tentar rm
. (Ou apenas conte os arquivos de outra maneira primeiro.)
Você também pode redirecionar os erros de rm
para /dev/null
, mas isso também mascara os erros valid .
Diga
tmpfile=$(mktemp)
ls -t | tail -n +$startnumber > $tmpfile
if [ -s "$tmpfile" ] ; then
echo not empty, do something with filelist in $tmpfile
else
echo empty, do something else
fi
rm "$tmpfile"
É claro que usar ls
como esse será quebrado se você tiver nomes de arquivos contendo novas linhas por algum motivo. (Sim, é possível. Embora nesse caso isso signifique que alguns arquivos não serão removidos, mesmo que devam ser.)