2015-10-10 81 views
-1

我開發了一個備份shell腳本,它基本上將文件複製到另一個目錄,並附加一個時間戳,粘貼在一起構成一個數字。比較備份文件的時間戳和刪除最舊的文件

對此有所影響。

cp file1 directory/{file1##*/} - {date +'%Y%m%d%H%M%S'} 

現在,假設我有'file1 - 20151009141528'和許多其他file1備份。我如何比較它們並刪除日期最小的那個?

這是誠實的我最後的手段。我嘗試過,但無濟於事!

非常感謝提前!

編輯:

我想去這樣的事情

for item in "$directory1" 
do 
if *number of file1 - 20151009141528 is smaller than all remaining backup files, remove* 
done 

回答

0

,我只想通過時間戳使用有點像那個sort -k3 -r和顯示只用尾巴tail -n 1最後一個使用排序。它對你有幫助嗎?

+0

它沒有但它真的是我的錯。我不知道如何在我的腳本中插入它,真相被告知,因爲我從來沒有使用尾巴或排序。 –

+0

'ls | sort -k3 -r |尾巴-n 1 | xargs rm'這將刪除最小編號的文件。 – grimsock

0

您可以在備份文件所在的目錄中運行此命令:ls|sort -V |head -n 1 |xargs rm。它對你的文件進行排序,然後挑選出來並刪除它。這個命令不關心文件是最老的還是最新的。它根據sort刪除最小值。如果你想在腳本中運行它。只需導航到您的目錄,然後運行該命令。類似於:

cd /path/to/directory; 
ls|sort -V |head -n 1 |xargs rm; 
相關問題