我有一個充滿不同文件但沒有擴展名的資料夾。如何刪除所有 zip 檔案?
答案1
在我的 Kubuntu 中執行以下命令:
file -b --mime-type path/to/some/zip
返回:
application/zip
我可以用它來檢測當前目錄(帶有子目錄)中的所有 zip 檔案。命令是:
find . -type f -exec sh -c '
for f do
file -b --mime-type "$f" | grep -q "^application/zip$" && {
printf "%s\n" "$f"
# rm "$f"
}
done
' find-sh {} +
如果結果看起來正常,請取消註解rm "$f"
(刪除#
)以實際刪除檔案。
筆記:
也不
-b
是--mime-type
便攜式選項file
。如果您file
不支援它們,請檢查哪些裸file path/to/some/zip
列印。它可能是:path/to/some/zip: Zip archive data, …
其中
…
表示附加資訊。如果我需要依賴此輸出,那麼我的grep
命令將是:grep -q ": Zip archive data"
但它(可能)會錯誤地偵測名稱中包含該字串的檔案。不管怎樣,
grep
根據你的file
列印內容進行調整。find-sh
解釋如下:中的第二個 sh 是什麼sh -c 'some shell code' sh
?該命令不關心檔案名稱(在 Linux 中,您所說的「副檔名」只是檔案名稱的一部分)。它回答了您在帖子正文中提出的問題(“如何刪除所有屬於 zip 檔案的檔案?”),而不是標題(“如何批量刪除 zip 檔案”)不含副檔名”)。