com zsh
:
for dir (/home/usr/ProjZ/programs/*(/)) rm -f $dir/*.js(.NOL[2,-1])
Observe que, se houver vários arquivos com o maior tamanho, apenas um será retido. Qual deles será depende da ordem em que aparecem no diretório atual (que geralmente é mais ou menos aleatório).
GNUly (% GNU sed
para -z
), o equivalente seria parecido com:
for dir in /home/usr/ProjZ/programs/*; do
[ -d "$dir" && ! -L "$dir" ] || continue
find "$dir" -type f -printf '%s:%pfor dir (/home/usr/ProjZ/programs/*(/)) rm -f $dir/*.js(.NOL[2,-1])
' | sort -rzn |
sed -z '1d;s/[^:]*://' | xargs -r0 rm -f
done