所以我想比較文件夾中文件的修改日期。我知道你可以將其與-nt或-ot進行比較,但我不知道如何遍歷文件並進行比較。我知道你必須指定一個文件作爲前一個文件,但我不知道這個代碼。Bash腳本遍歷和比較循環中的文件日期
例如,我有一個文件夾與說3文件,a,b和c。在for循環中,我想比較(先前的條目)和b(條目)。如果a比b新,則刪除b。等等。
我想弄清楚如何分配「以前的條目」。
謝謝親切!
echo "Which directory would you like to clean?"
read directory
echo "Are you sure you want to delete old back ups? Y for yes"
read decision
if [ $decision = "y" ]
then
for entry in "$directory"/*
do
#need to somehow assign the previous entry and current entry to a variable
if [ $entry -nt $previousEntry ]
rm -i $previousEntry
echo "Deleted $previousEntry"
fi
done
echo "Deleted all old files"
else
echo "Exiting"
exit 1
fi
到底什麼是最終目標?你怎麼比較? 'file1'與'哪個文件'? – Bill 2013-05-06 04:38:08
什麼是以前的入口?如果你最終告訴我們你想要做什麼,可能還有其他方法。如果你想刪除比某個給定日期更舊的文件,遞歸地,它可以在一行中完成。 (「老」是一個難詞~~) – abasu 2013-05-06 04:44:32
你提到的是這樣的事情嗎? '因爲我在*;如果[-n $ j];那麼如果[$ i -nt $ j];然後回顯「$ j比$ i更新」;網絡連接;網絡連接; J = $ I; done'?假設你有3個文件,a,b,c按照上述順序創建,所以你會得到一個比b更新的文件; b比c更新;'作爲輸出。 – abasu 2013-05-06 05:08:44