Solução "simples"
ls -1 /Dropbox/apache2-backup-* deve ordenar alfabeticamente por nome, por exemplo, por data (uma vez que a data é formatada com o dígito mais significativo à esquerda). Você pode, então, obter o mais antigo, canalizando para head -1 (supondo que não haja novas linhas nos nomes dos arquivos). Geralmente, canalizar a partir de ls é uma má ideia, mas deve estar bem, neste caso, já que você sabe que não há caracteres especiais nos nomes dos arquivos.
mv "$(ls -1 /Dropbox/apache2-backup-* | head -1)" /root/Dropbox-archive/
Eu provavelmente também recomendaria usar mv --no-clobber (ou mv -n ), para que você não sobrescreva arquivos acidentalmente.
Solução "adequada"
Se você estiver realmente preocupado com caracteres especiais, use o seguinte em seu lugar.
to_move="$(find /Dropbox -maxdepth 1 -type f -name 'apache2-backup-*' -print0 | sort -z | tr 'mv "$(find /Dropbox -maxdepth 1 -type f -name 'apache2-backup-*' -print0 | sort -z | tr 'mv "$(ls -1 /Dropbox/apache2-backup-* | head -1)" /root/Dropbox-archive/
\n' '\nto_move="$(find /Dropbox -maxdepth 1 -type f -name 'apache2-backup-*' -print0 | sort -z | tr 'mv "$(find /Dropbox -maxdepth 1 -type f -name 'apache2-backup-*' -print0 | sort -z | tr '%pre%\n' '\n%pre%' | head -1 | tr '%pre%\n' '\n%pre%')" /root/Dropbox-archive/
\n' '\n%pre%' | head -1 | tr '%pre%\n' '\n%pre%')"
mv "$to_move" /root/Dropbox-archive/
' | head -1 | tr '%pre%\n' '\n%pre%')" /root/Dropbox-archive/
\n' '\n%pre%' | head -1 | tr '%pre%\n' '\n%pre%')"
mv "$to_move" /root/Dropbox-archive/
Explicação
-
find /Dropbox -maxdepth 1 -type f -name 'apache2-backup-*' -print0: retorna arquivos normais (-type f) em/Dropboxsem descer para subdiretórios (-maxdepth 1), que correspondem ao padrão-name 'apache2-backup-*'. Delimite por caractere nulo, em vez de novas linhas-print0. -
| sort -z: classifique com base no caractere nulo (N.B. nem todos os tipos podem fazer isso) -
| tr ': troca null e newlines para processamento por cabeçalho.| head -1\n' '\n| tr ''mv "$to_move" /root/Dropbox-archive/\n' '\n%code%' - %code% : retorna a primeira linha.
- %code% : swap null e newlines de volta.
- %code% : faça o movimento!
Ou, em uma única linha:
%pre%