2010.09.30 15:01

自製 Mac 懶人垃圾桶

ADVERTISEMENT

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

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

Mac的垃圾桶不貼心

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

ADVERTISEMENT

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

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

ADVERTISEMENT

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

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

ADVERTISEMENT

終端機是男人的浪漫

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

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

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

ADVERTISEMENT

▲其實沒有管理員權限也能刪檔,但是有些檔案會不能刪,所以一開始還是先「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來實現更進階的功能。不過還是算了吧,不就是一個垃圾桶,幹嘛搞得那麼複雜呢?

ADVERTISEMENT