com zsh
:
echo rm -f ./**/*pattern*(.Dom[4,-1])
-
**/
de qualquer nível de subdiretórios -
Qualificadores
(...)
glob para qualificar a correspondência com outros critérios: -
.
: apenas arquivos regulares -
D
: inclua arquivos de pontos (arquivos ocultos) e procure diretórios ocultos -
om
: ordem por hora da modificação (da mais recente para a mais antiga) -
[4,-1]
: de 4 th para último (então, pula os 3 primeiros).
(remova echo
para fazer isso)
Para um equivalente usando qualquer shell POSIX e utilitários GNU:
(export LC_ALL=C
find . -name '*pattern*' -type f -printf '%T@/%p(export LC_ALL=C
find . -name '*pattern*' -type f -printf '%T@/%pecho rm -f ./**/*pattern*(.Dom[4,-1])
' |
tr '\n(export LC_ALL=C
find . -name '*pattern*' -type f -printf '%T@/%p(export LC_ALL=C
find . -name '*pattern*' -type f -printf '%T@/%p%pre%' |
tr '\n%pre%' '%pre%\n' |
sort -rn |
tail -n +4 |
cut -d/ -f2- |
tr '\n%pre%' '%pre%\n' |
xargs -r0 echo rm -f)
' |
sort -zrn |
tail -zn +4 |
cut -zd/ -f2- |
xargs -r0 echo rm -f)
' '%pre%\n' |
sort -rn |
tail -n +4 |
cut -d/ -f2- |
tr '\n%pre%' '%pre%\n' |
xargs -r0 echo rm -f)
' |
sort -zrn |
tail -zn +4 |
cut -zd/ -f2- |
xargs -r0 echo rm -f)
(remova echo
para fazer isso)
Com versões mais antigas dos utilitários GNU, você pode precisar de:
%pre%