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?
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?
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