shell腳本遞歸刪除某個文件夾下的所有.git文件:
find . -name ".git" -type d | xargs rm -rf
這個腳本使用find命令查找當前文件夾(.)及其子文件夾下名爲.git的目錄。然後使用xargs和rm -rf刪除查找到的所有.git文件夾。具體說明:
1. find . -name ".git" -type d
- .表示從當前文件夾開始查找
- -name ".git"表示查找名爲.git的文件/文件夾
- -type d表示只查找目錄(文件夾)
2. | xargs rm -rf
- |將find命令的結果輸出傳遞給xargs
- xargs rm -rf表示使用rm -rf刪除輸入的所有項
- rm表示刪除
- -r表示遞歸刪除
- -f表示強制刪除,忽略不存在的文件並避免提示
3. rm -rf
可能刪除非.git文件夾,請謹慎使用該腳本。您可以添加額外判斷邏輯,確保只刪除.git目錄。
4. 該腳本執行後會刪除指定文件夾下的所有.git文件夾。如果您只想刪除部分.git,需要修改find命令的路徑和條件進行篩選。
此外,還有一個更簡單的方法使用Git命令直接刪除.git文件夾:
git rm -r --cached . # 刪除緩存
git checkout -- . # 恢復未緩存
這兩個命令結合可以刪除Git倉庫中被緩存的.git文件夾。