2013-05-07 60 views
1

我需要能夠刪除任意路徑列表(文件和目錄),並且如果任何刪除失敗,我需要能夠回滾。有沒有可以容納這個的Unix命令?如果不是,bash腳本也可以。原子刪除路徑列表

回答

3

不太可能有一個命令,它完全一般。 O/S不支持自動刪除多個路徑,所以命令很難做到這一點。考慮一個SIGKILL;該命令無法恢復,並且內核不知道它必須撤消所做的操作,所以原子性被破壞。

您可以通過將刪除的文件或目錄移動到垃圾桶文件夾,然後只刪除垃圾文件夾的其他內容(如果出現問題時從廢紙簍文件夾中恢復數據)的內容來近似原子性。但它不保證原子。當文件位於不同的文件系統上時,您必須考慮將垃圾放到哪裏,因此您需要每個文件系統垃圾文件夾。你還需要擔心原子上刪除30個文件,全稱爲'makefile';這意味着你將需要垃圾目錄中的目錄層次結構信息(可能是垃圾目錄下的實際目錄,因爲其他任何內容最終都是不明確的)。