I232 從Windows陣營轉移到Mac的玩家,有兩個地方一定很不習慣,第一是Mac無法像Windows一樣按下「Shift+Delete」來強制刪除檔案,再來是垃圾桶裡的文件也無法個別移除,要就得一次全部清空,有點麻煩。所以我們不如就來自己做一個「懶人垃圾桶」,以後刪檔案時就方便多了!

現實中的資源回收筒是為了保護地球,電腦裡的資源回收筒是為了防人旦夕手賤。Windows跟Mac OS X都有所謂的資源回收筒(在Mac是叫「垃圾桶」),它們最大的功能就是讓使用者在不小心誤刪檔案之後,還有後悔的機會,把「原來以為是的廢物」回收再利用,是近代作業系統非常重要的一個檔案管理技巧。

Mac的垃圾桶不貼心

不管是Windows或Mac,資源回收筒的架構以及原理都很簡單,其實它只是一個實體資料夾,當檔案被刪除時,就會被丟到這個資料夾裡面,只不過該文件的刪除前路徑會被記錄起來,之後就能再還原到原來的地方。這個資料夾是沒有經過壓縮的,所以當你把檔案丟到資源回收筒時,並不會釋放磁碟的空間,除非你在資源回收筒裡再把該檔案刪除,才能算是真的「趕盡殺絕」。

這種作法在Windows比較沒有問題,但是Mac就很麻煩。首先Mac OS X不像Windows一樣可以不透過垃圾桶直接從GUI刪除檔案,再來是垃圾桶裡的內容要就得一次全部清空,常常會讓檔案的管理上變得左右支絀,尤其是對於「桌面常常雜亂無章又不知道該如何收納,心想乾脆看不順眼或暫時用不到的東西就先丟到資源回收筒好了,反正以後可以再救回來」的人來說,要叫他一次清空垃圾桶所冒的風險實在太大。

▲動不動就要叫人清空垃圾桶,也太無情了吧。

除此之外還有一個問題。不知道大家有沒有注意過,在Windows環境,USB或外接儲存裝置上的檔案是不能丟到資源回收筒的,只能夠強制刪除(也就是永遠刪除);Mac OS X卻不是,隨身碟在Mac一樣必須透過垃圾桶來刪除檔案,如此一來就算你把隨身碟上面的檔案都刪光了,卻還是無法謄出多餘的空間,一樣還是要先清空垃圾桶才行。

▲用檔案總管看被Mac刪過檔案的USB隨身碟,會出現好幾個隱藏檔。

終端機是男人的浪漫

解決的辦法很簡單,羊毛出在羊身上,我們只要找到這個垃圾桶資料夾,然後進去裡面刪除個別檔案的資料即可。不過這個資料夾從Finder是看不到的,你得從底層的UNIX檔案系統下手。

只要是在本機硬碟上刪除的檔案,都會被丟到「/Users/你的使用者帳號/.Trash」這個資料夾裡頭。至於隨身碟就比較特別,前面不是提過「就算你把隨身碟上面的檔案都刪光了,卻還是無法謄出多餘的空間」嗎?這是因為只要是在隨身碟上刪除的檔案、就會留在隨身碟上,也就是每個隨身碟都會產生一個自己的垃圾桶資料夾,不會跟本機硬碟共享,但是它還是叫做「/.Trash」,會放在隨身碟的根目錄。

知道垃圾檔放在哪裡之後就簡單了,接下來請打開終端機,直接鍵入「cd ~/.Trash」就會進入垃圾桶資料夾,這時候再利用UNIX的檔案刪除指令「rm -rf 檔案或目錄名稱」就可以刪除檔案跟目錄,記得最好先用「sudo -s」取得管理員權限會比較保險。隨身碟的話就請打「cd /Volumes/隨身碟名稱/.Trash」。

▲其實沒有管理員權限也能刪檔,但是有些檔案會不能刪,所以一開始還是先「sudo -s」吧。

不過這種作法是治標不治本,每次都還要開終端機刪檔案實在麻煩,為什麼Mac就不能像Windows一樣直接刪除檔案呢?其實只要利用AppleScript結合UNIX命令,再佐以快速鍵程式一樣可以達成同樣效果。AppleScript提供了一種特殊的應用程式類型,叫「Droplet」,只要你把檔案或資料夾施曳到AppleScript應用程式上,Droplet就可以取得它們的路徑,然後再做更進一步的處理,所以我們可以用AppleScript做一個「進階版資源回收筒」或「黑洞回收筒」、「懶人回收筒」、「碎紙機」or whatever you call,把檔案拖到上面就能直接刪除,很簡單的技巧卻很實用。

DIY是男人的專長

Step 1

首先,請先找一個圖示。筆者這裡直接拿Mac垃圾桶預設的圖示來用,不過先把它漆成紅色,以跟原本的垃圾桶做區別,避免丟錯。

Step 2

再來下載img2icns這個程式,把紅色的PNG拖入就能夠輸出Mac專用的.icns圖檔。

Step 3

接著打開AppleScript編寫程式,輸入圖中程式碼。

Step 4

儲存檔案時,請存成「應用程式」。

Step 5

在應用程式上按右鍵,選「顯示套件內容」。

Step 6

Mac大部份的應用程式都是標準的App資料夾結構,把你剛才做好的icns檔改成跟目錄裡相同的名字,然後覆蓋它。

Step 7

過兩秒鐘應用程式的圖示就會變更。然後再把它拉到Dock上就行了。你可以任意更改應用程式的名稱,其實筆者覺得「Non-Recoverable Trashcan」會比較傳神,又有提醒及嚇阻效果。 

Step 8

做好以後,你就有兩個垃圾桶了。以後要刪除佔空間的大檔案,就把它拖到紅色垃圾桶吧!刪了就沒辦法再救回來。順帶一提,如果你要刪除原本Mac垃圾桶裡的檔案,也可以直接把檔案從原本的垃圾桶拉到紅色垃圾桶,不必再進入終端機了。

另外因為Applescript要做出進度列效果比較困難,你可以在Applescript的最後加一行「display dialog "檔案已經刪完了!喔耶~"」的提醒對話盒,否則就要利用XCode來實現更進階的功能。不過還是算了吧,不就是一個垃圾桶,幹嘛搞得那麼複雜呢?

使用 Facebook 留言

C3a00c2fae137abdc539e89886f06be0?size=48&default=wavatar
1.  mingchunlin (發表於 2010年9月30日 20:23)
我覺得把這個垃圾筒的圖示改成"黑洞"的圖示會更傳神些! ;-)
F1b3815c46a66905c530130a6c72616c?size=48&default=wavatar
5.  Knud (發表於 2010年10月01日 15:27)
mac os 可以從 GUI 直接刪除檔案喔, 對於隨身碟也是...
1d67a1599e3a0d03e2fc311450aa2c6a?size=48&default=wavatar
6.  middle (發表於 2010年10月01日 22:03)
我的是10.5,字都是單字,不像您打的是彩色的@@
請問以下打的有問題嗎?

on open the_Droppings

set the_Text to ""
repeat with every_drop in the the_Droppings

do shell script "rm -rf" & "\"" & POSIX path of every_drop & "\""
with administrator privileges
end repeat

--display dialog "檔案已經殺掉"
end open

C0649e81bed4315604d95b1034889e0b?size=48&default=wavatar
7.  lung (發表於 2010年11月22日 18:58)
我無法在applescript editor中加入“with administrator privileges“這句,不知是什麼原因?

我的os 是10.6.5,希望大大賜教!
7bd982701bb54c311ac0577eb64cb5dd?size=48&default=wavatar
8.  Jacob (發表於 2010年12月09日 02:05)
do shell script "rm -rf" & "\"" & POSIX path of every_drop & "\""with administrator privileges
上面這一段要打成一整句,不能打成do shell script "rm -rf" & "\"" & POSIX path of every_drop & "\""跟with administrator privileges 這樣變兩行,就不會出現錯誤了!
95dc93f4a8d1837e8255ec13ce207767?size=48&default=wavatar
9.  Andy (發表於 2011年2月12日 10:43)
〒ˍ〒
大大求教 我是系統10.6.6
出現
rm:illegal option -- /
usage : rm [-f | -i] [-dPRrvW] file .....
unlink file
Please help 謝謝!!
5f7794161eb7dd14bcf1d5339c92313e?size=48&default=wavatar
10.  henry (發表於 2011年4月30日 15:29)
mac 可在gui 用command - delete直接刪補file, 無須一定drag and drop到垃圾桶 
488f62e8aa4dddac59bf8dc1d58d2cbc?size=48&default=wavatar
11.  Boris (發表於 2011年5月07日 16:49)
請問有辦法把 administrator privileges 變成選擇 yes or no 的提示框嗎?
0aae6543deadabb8ce6c6f7216f4a427?size=48&default=wavatar
1人給推

12.  lary (發表於 2012年12月02日 12:32)

大大請教一下 我是系統10.7.4
出現
rm:illegal option -- /
usage : rm [-f | -i] [-dPRrvW] file .....
unlink file
拜託請教我如何處理,謝謝!!
huzi
13.  huzi (發表於 2013年11月06日 13:25)
回lary,出現
rm:illegal option -- /
usage : rm [-f | -i] [-dPRrvW] file .....
unlink file
选择编辑,然後在do shell script "rm -rf " ,f与“中间输入一个空格键,再保存就不会出错了,只不过删除时会问密码,而且删完之後不会显示对话框。我也是10.7.4的。

發表回應

謹慎發言,尊重彼此。按此展開留言規則