Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

A while back, as relatively new Mac OS X user, I was surprised to learn that you cannot easily delete files. Directly, that is, without moving them to the trash first. On Windows and Linux this can obviously be done with ease, but not so on the Mac.

I noticed this when trying clear up files from a USB memory stick — removing the files ("move to trash") does not free up space; that happens only after emptying the whole system-wide Trash. Not particularly convenient! (It seems stupid to have to empty the whole trashcan just to make some space on the USB stick. There might be gigabytes of stuff in there, and this sort of defeats its purpose - what if you'd actually need to restore something from the trash some day.)

So, what's your way of getting around this? Have you bought a 3rd party application like RAW Trash for $16.95 just to delete files, or do you diligently empty the trashcan whenever needed? Or did I miss something? Also, can you convince me that this is actually the way it should be — that users shouldn't be able to fiddle with the filesystem easily? :)

share|improve this question
add comment

10 Answers

up vote 14 down vote accepted

I'm not so happy with the way Mac OS X handles this either. If I really want to delete something, especially from USB memory sticks, I usually fire up Terminal and rm the files manually.

share|improve this answer
add comment

Since so many people seem to want it, I just created a Service to do this, for Snow Leopard, called Delete Immediately. It shows up in the Services menu and the context menu in Finder.

You can download it from GitHub. Uncompress the .zip archive and move the resulting "Delete Immediately.service" to the Services folder in your library folder, ~/Library/Services/. You may need to log out and back in (and/or enable it in the Services section of the Keyboard preferences) for the system to recognize the service.

I'd also suggest checking out the README file on the main page on GitHub. And if you want to contribute to the code, localize it, or make an icon, feel free!

Context menu

Services menu

share|improve this answer
4  
Shiney. You can also bind a keyboard shortcut to this service: "In the Application menu choose Services/Services Preferences. Open System Preferences/Keyboard/Keyboard Shortcuts/Services. Select a service, press Enter and then press your chosen shortcut key combo" (from gingerbeardman.com/services ) –  dbr Aug 31 '09 at 20:25
    
Very nice, thanks! Does this only work on 10.6? (I'll still be on Leopard for a while.) –  Jonik Aug 31 '09 at 22:00
1  
It does only work on 10.6 for now, I'm not as familiar with how Services work on 10.5 (they don't show up in the context menu, and writing a context menu plugin for 10.5 is a bit harder). –  jtbandes Aug 31 '09 at 22:22
    
And, Jonik, I'd really recommend you upgrade to 10.6 if your hardware allows (i.e. you have an Intel Mac). Even if you won't get many of the speed boosts if you don't have a 64-bit machine, like I don't, the minor refinements are definitely worth the low price. –  jtbandes Aug 31 '09 at 22:34
1  
Is there a way to assign Shift+Del as shortcut to this service? It seems like System Preferences beeps at you for any combination that involves Del. –  haridsv Sep 1 '11 at 16:58
show 8 more comments

To delete a specific file, without going through the trash..

  • open a Terminal
  • type rm (with a trailing space), or rm -r if you plan to remove a directory
  • drag and drop the file onto the Terminal window, which enters the full path to the dropped file
  • hit enter

jtbandes's "Delete Immediately" service solution is much more elegant, but the "Terminal way" doesn't require any additional software (so is good when working on machines that you don't regularly use)

share|improve this answer
    
+1, thanks for the drag and drop onto Terminal tip –  Jonik Aug 31 '09 at 22:01
    
Thanks for the useful tip, based on your suggestion I have made a simple cocoa app, here is the link: daemonconstruction.blogspot.in/2013/01/… –  Miraaj Jan 7 '13 at 15:26
    
@Miraaj Glad the answer was useful! The download link in your blog-post is broken (the link contains the next sentence, rather than a URL) –  dbr Jan 8 '13 at 9:57
    
@dbr.. thanks for informing me.. I have updated it now :-) –  Miraaj Jan 13 '13 at 9:01
add comment

The Terminal-less way of solving this conundrum is to cast the following spell to appease the Apple gods, like so :

Select the file to be sacrificed followed by reciting:

⌘ Delete

⌘ ⇧ ⌥ ⌫

This will send the file to Trash, and then delete the whole Trash, thus should send the victim (and all other trashed items) to oblivion.

share|improve this answer
    
Cool, thanks! Right now I cannot confirm if this works, but if so, it's exactly what I wanted :) –  Jonik Jul 22 '09 at 11:49
10  
What this does is first deleting the file, then emptying the trash. While its a useful keyboard shortcut, it doesn't really address the issue of being unable to easily delete selected files. –  Daan Jul 22 '09 at 11:59
1  
Agreed Daan. It's not ideal. But using rm in the Terminal is also not an ideal and rather un-Mac way of doing things. Our friend Jonik will have to weight the pros and cons I guess. ;-) –  GeneQ Jul 22 '09 at 12:07
7  
-1 for misleading answer. What if the user didn't want to empty his trash? –  hasenj Aug 29 '09 at 21:01
3  
-1 also, the original question mentions that emptying the system wide trash "Not particularly convenient!", which is what that shortcut does.. –  dbr Aug 31 '09 at 20:21
show 1 more comment

I use rm -rf in the command line. It deletes a lot faster and it deletes everything. A common problem I have with Windows is that deleting is a process rather than a point in time and I often find myself watching Windows delete folders and files for several minutes. Rm -rf is quick.

You can also use rm -rf to delete a specific Trash. The trash can is a hidden folder named .Trash in the root of the relevant volume or directory.

And yes, I think this is how it should be. Users shouldn't be able to delete files too quickly using Finder. Files should be recoverable from the Trash.

share|improve this answer
    
Note that if space in the Trash is not counted as space used, files in the Trash will be overwritten over time and cannot be recovered any more. So the choice is really between keeping files in the Trash and suffering the space hit or not keeping files in the Trash and having more space available. Combinations between the two are unpredictable for a normal user. –  Andrew J. Brehm Jul 22 '09 at 9:59
4  
This is good advice, but I think that it should be made extremely clear to the unwary/non-savvy that rm -rf needs to be used extremely carefully; it will erase everything in the folder you pass to it, including the folder, without confirmation. If a system folder is passed into this command, you can do enough damage to require you to reinstall the operating system (While the permissions should keep you from destroying the system, I tend to try not to rely on them). –  Babu Jul 22 '09 at 19:35
    
Why the down-vote??? –  Andrew J. Brehm Nov 15 '12 at 21:17
add comment

Part of the beauty of Mac OS X is that while it's dead easy for inexperienced users to find their way around and get stuff done, power users can "fiddle with the system" by using the power of the underlying Unix via a command shell (i.e. Terminal.app).

@Leauki is right about using the unix command rm, but BE VERY CAREFUL, particularly if using the -rf flags! There's no safety-net and you can do serious damage, up to and including deleting your own root filesystem!

My recommendation is not to use absolute paths with rm, but to cd into the diretory you want to work with first, and then for example:

rm -rf ./<subpath to file to delete> where the ./ in the path forces rm to operate only in the directory you're currently in.

share|improve this answer
5  
rm -rf bin - oops I forgot to cd, but I'm not in / so not so big an oops. rm -rf /bin - oops I forgot to type . so BIG OOPS! (regardless of where I've cd'd to)! So I disagree. –  Dennis Williamson Jul 22 '09 at 10:48
    
@Dennis - yep, if you forget to type the period you're in a world of pain! I guess this is the main reason Apple doesn't want their average user doing this kind of stuff, hence the Trash functionality the OP was taking issue with. So, I agree with your disagreement, but it sounds like you and I are experienced *nixers who respect the command shell as the potentially dangerous place we know it to be. I was only suggesting that less experienced users get into a habit of mind before using potentially dangerous commands. –  avstrallen Jul 22 '09 at 11:14
    
Thanks. I agree that it's easy enough to do it on command line. But in this case I don't especially like having to resort to that... On Mac OS, you're not supposed to have to use the command line for common, end-user kind-of things, IMHO, and freeing up space on a USB stick is a pretty common thing to do. –  Jonik Jul 22 '09 at 11:55
    
I agree with @GeneQ and @Daan - but I have a methodological workaround: I don't put anything in the Trash until I know for sure I'm done with it and then empty the Trash immediately every time... problem solved. –  avstrallen Jul 22 '09 at 12:55
add comment

I came up with the following applescript, which I bound to shift del with Keyboard Maestro, so it now works as in windows. With the item selected in Finder, shift del will run the script, which displays a dialog warning of the permanent deletion of the item with its name. Clicking OK completes the delete.

I don't know much about shell commands, and some of the previous posters warned of the danger of using rm -rf, which is something I have done in the script. It seems to work as predicted for me so far though.

tell application "Finder"
    set myPosixPath to selection as text --returns an alias path
    set myPosixPath to POSIX path of myPosixPath --set it to posix style path with backslashes

    --identify whether it's a file or folder. Only for the warning dialog.
    if character -1 of myPosixPath is "/" then
        set itemType to "folder"
    else
        set itemType to "file"
    end if

    --display a warning
    display dialog myPosixPath & "

This cannot be undone." with title "Really permanently delete this " & itemType & "?"
do shell script "rm -rf " & quoted form of myPosixPath --execute a shell script to delete the item
end tell
share|improve this answer
    
for all the things that Mac OS X doesn't already provide, there's Keyboard Maestro. –  Kaushik Gopal Jul 29 '11 at 3:59
add comment

I think that this is done for user consistency, and safety. I think that is better to keep files for longer than required and use space instead of being gung-ho and deleting them straight away.

This is a bit annoying though when you are working with USB sticks and you move them to a windows machine and go ... where is all my space ... and what is this annoying .trash folder.

share|improve this answer
add comment

Use muCommander for deleting files (it's free)

Instead of using the Finder then perhaps use another file manager such as muCommander. It can delete files and move files to the trashcan as well. It's much safer than pasting "rm -rf" into a Terminal, where you risk pasting the wrong commands causing damages that are irreversible.

share|improve this answer
add comment

If you really want to use a third party App, a much cheaper alternative to RAW Trash that you mentioned is File Shredder. (US Mac App Store $3.99)

It offers several ways to securely delete files:

  • A one-pass normal deletion that just overwrites your files.
  • A seven-pass DoD compliant pass makes sure most people can't get into your files.
  • A 35-pass Gutmann deletion ensures that your files are truly gone when you delete them.

This might be a bit overkill for most people, although if you are looking for a cheaper way than RAW Trash to securely delete files FileShredder gets the job done.

share|improve this answer
add comment

protected by Community Jul 15 '12 at 17:34

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.