-4

I've got directory with files like:

dump_2014_12_21_1001.7z
dump_2014_12_21_1122.7z
dump_2014_12_21_1207.7z
dump_2014_12_21_1334.7z

Number of files may be different.

I need to write bash script to delete all files except newest one?

1 Answers1

1

Please don't use that num=$(ls /tmp/ | wc -l) num=$((num-1)) (ls -lt /tmp/ | tail -n $num;ls) | sort|uniq -u|xargs rm you posted.

Your filenames are very glob-friendly, you don't need to sort them again. Here's a better solution:

unset oldfile
for file in *.7z; do
  [[ $oldfile ]] && rm "$oldfile"
  oldfile=$file
done
izabera
  • 659
  • 5
  • 11