Rm

如何在不刪除指定文件的情況下反轉刪除目錄中的文件

  • May 26, 2020

假設我在一個目錄中有這些文件。

├── __init__.py
├── __init__.pyc
├── __pycache__
├── recognizer.wsgi
├── requirements.txt
├── src
└── upld

我想在其中刪除除upld目錄之外的所有內容。我想知道有沒有更快更好的方法來做到這一點。

謝謝你。

find . -path ./upld -prune -o ! -path . -print

這將用於find刪除目前目錄中的所有內容,包括子目錄。但是,路徑./upld不會被刪除(請注意,這必須是您要跳過的內容的完整相對路徑,從初始搜尋路徑開始)。

執行它並檢查輸出,然後替換-print-delete.


安全選項,來自相關目錄的父級:

mkdir newdir
mv olddir/upld newdir
rm -rf olddir
mv newdir olddir

也就是說,upld為了安全起見,將子目錄移開,然後完全刪除舊目錄。

引用自:https://unix.stackexchange.com/questions/588962