2011-09-05 89 views
0
之外的所有文件

我有一個文件夾,裏面有幾個文件;我喜歡保留我的文件夾清除任何可能以其結束的雜散文件。這種流氓文件可能包括自動生成的備份文件或日誌文件,但可能很簡單,因爲有人不小心將它保存到了錯誤的文件夾(我的文件夾)。刪除除

相反,我不得不一直挑選所有這一切,我想知道是否可以創建一個只保留大量指定文件(按名稱和位置)的批處理文件,但刪除不在「列表」上的任何內容。

+0

您正在使用哪種操作系統? –

回答

2

對不起,當我第一次看到我讀bash而不是batch的問題。我不刪除不那麼有用的答案,因爲正如在cygwin可以完成的評論中指出的那樣。

你可以列出這些文件,排除你想要保存的文件並將它們提交給rm。

如果所有的文件都在一個目錄:

ls | grep -v -f ~/.list_of_files_to_exclude | xargs rm 

或在目錄樹

find . | grep -v -f ~/.list_of_files_to_exclude | xargs rm 

其中~/.list_of_files_to_exclude是一個文件的模式列表中排除(每行一個)

在測試之前,先製作備份副本,用rm替換爲echo,看看輸出是否真的是你想要的。

+0

'batch'和'del'標籤似乎表明Windowsy環境:-)雖然,當然,您可以使用CygWin等。 – paxdiablo

+0

對不起,我的大腦只是閱讀'bash'而不是'batch' :-) – Matteo

1

文件存活的白名單是一個令人難以置信的危險概念。我強烈建議重新考慮這一點。

如果必須做到這一點,我可能會建議您真正實現這樣說道:

  • 移動ALL文件,每次運行創建一個備份區(一個如含有當前日期的目錄和時間)。
  • 使用您的白名單複製您想保留的文件,例如copy c:\backups\2011_04_07_11_52_04\*.cpp c:\original_dir)。

這樣一來,你把所有的非白名單文件,如果你搞砸了(你在某些時候,相信我),你不必擔心負邏輯的批處理文件(刪除所有不屬於的文件,全部這些類型),而是使用更簡單的選項(將每個每個文件移回類型)。

+0

我想這是唯一的方法。 – glen