#! /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.