我有一個文件夾,其中包含一些subversion版本檢出(在運行capistrano部署配方時檢出)。如何刪除文件夾中除最新三個文件以外的所有文件
我真正想要做的是保持最新的3個版本,其中capistrano腳本簽出並刪除其他的,所以爲此我打算運行命令在終端上運行一些命令,實際上capistrano hasn'這裏沒有任何事情要做,而是一個unix命令。
我試圖運行一個命令來獲取除最後三個文件以外的文件列表並刪除其餘的文件,我可以使用以下命令獲取文件列表。
(ls -t /var/path/to/folder |head -n 3; ls /var/path/to/folder)|sort|uniq -u|xargs
現在,如果我添加一個rm -Rf到這個命令的末尾,它會返回我帶有未找到的文件以進行刪除。所以這很明顯,因爲這隻返回文件夾的名稱,而不是文件夾的完整路徑。
有無論如何刪除這些文件/文件夾使用一個Unix命令?
你好感謝你的反應,但我仍然得到的文件只有名字,我的主要需求之一是從服務器的任何目錄運行此代碼,並刪除該文件在該var /路徑/到/文件夾這很好,如果我在同一文件夾var/path/to /文件夾 – nivanka 2010-12-15 08:06:27
@nivanka:這真的很奇怪。你是指定一個相對或絕對路徑?如果要從服務器上的任何目錄運行此命令,則需要指定絕對路徑。你能複製/粘貼你正在使用的* exact *命令嗎? – AgentConundrum 2010-12-15 08:12:54
嗨,這是我做ls -t1/var/path/to/folder | tail -n +4 | xargs rm -r – nivanka 2010-12-15 08:55:29