-4
我有目錄與文件一樣:刪除所有,但1個最新的文件慶典
dump_2014_12_21_1001.7z
dump_2014_12_21_1122.7z
dump_2014_12_21_1207.7z
dump_2014_12_21_1334.7z
文件數量可能會有所不同。
我需要編寫bash腳本來刪除除最新之外的所有文件嗎?
我有目錄與文件一樣:刪除所有,但1個最新的文件慶典
dump_2014_12_21_1001.7z
dump_2014_12_21_1122.7z
dump_2014_12_21_1207.7z
dump_2014_12_21_1334.7z
文件數量可能會有所不同。
我需要編寫bash腳本來刪除除最新之外的所有文件嗎?
請不要使用您發佈的num=$(ls /tmp/ | wc -l) num=$((num-1)) (ls -lt /tmp/ | tail -n $num;ls) | sort|uniq -u|xargs rm
。
你的文件名是非常全球友好的,你不需要再次排序。 這裏的一個更好的解決方案:
unset oldfile
for file in *.7z; do
[[ $oldfile ]] && rm "$oldfile"
oldfile=$file
done
或者:'shopt -s nullglob; files =(* .7z); (($ {#files [@]}> 1))&& rm - 「$ {files [@]:1}」'。如果沒有太多的文件。 –
NUM = $(LS/TMP/| WC -1) NUM = $((NUM-1)) (LS -lt/TMP/|尾-n $ NUM ; ls)| sort | uniq -u | xargs rm – user3301252