#! /bin/zsh -
del=10
rm -f /mnt/md0/capture/DCN/*.pcap(D.Om[1,$del])
Usando os qualificadores zsh globbing:
-
D: inclui arquivos ocultos ( D ot files). -
.: somente arquivos regulares (comofind's-type f) -
Om: inverte O rder na idade (com base no m tempo de odificação) -
[1,$del]: inclua apenas os primeiros arquivos$del.
Com ferramentas GNU:
cd /mnt/md0/capture/DCN/ &&
find . -maxdepth 1 -name '*.pcap' -type f -printf '%T@@%pcd /mnt/md0/capture/DCN/ &&
find . -maxdepth 1 -name '*.pcap' -type f -printf '%T@@%p#! /bin/zsh -
del=10
rm -f /mnt/md0/capture/DCN/*.pcap(D.Om[1,$del])
' |
tr 'cd /mnt/md0/capture/DCN/ &&
find . -maxdepth 1 -name '*.pcap' -type f -printf '%T@@%pcd /mnt/md0/capture/DCN/ &&
find . -maxdepth 1 -name '*.pcap' -type f -printf '%T@@%p%pre%' |
tr '%pre%\n' '\n%pre%' | sort -n | head -n "$del" |
cut -d@ -f2- | tr '%pre%\n' '\n%pre%' | xargs -r0 rm -f
' |
sort -zn | sed -z "s/[^@]*@//;$del q" | xargs -r0 rm -f
\n' '\n%pre%' | sort -n | head -n "$del" |
cut -d@ -f2- | tr '%pre%\n' '\n%pre%' | xargs -r0 rm -f
' |
sort -zn | sed -z "s/[^@]*@//;$del q" | xargs -r0 rm -f
find cria uma lista delimitada por NUL de nomes de arquivos com um registro de data e hora Unix prefixado (como 1390682991.0859627500@./file ) que é classificado por sort . sed remove o registro de data e hora e sai depois de ler $del registros. Isso é passado como argumentos para rm usando xargs -r0 .
ou:
%pre% O mesmo, exceto que estamos usando cut para remover o registro de data e hora e head para selecionar as primeiras $del linhas. Como o cut e head do GNU não suportam -z para trabalhar em registros delimitados por NUL, usamos tr para trocar os caracteres Nline e NUL antes e depois de fornecer os dados para eles.