21

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? :)

1
  • 2
    Were you looking for the shortcut ⌘+⌥+⌫ (Command+Option+Delete)?
    – Daniel
    Sep 6, 2018 at 4:57

10 Answers 10

22

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.

28

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

13
  • 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, 2009 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, 2009 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, 2009 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, 2009 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, 2011 at 16:58
7

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.

6
  • Cool, thanks! Right now I cannot confirm if this works, but if so, it's exactly what I wanted :)
    – Jonik
    Jul 22, 2009 at 11:49
  • 13
    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, 2009 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, 2009 at 12:07
  • 9
    -1 for misleading answer. What if the user didn't want to empty his trash?
    – hasen
    Aug 29, 2009 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, 2009 at 20:21
5

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)

4
  • +1, thanks for the drag and drop onto Terminal tip
    – Jonik
    Aug 31, 2009 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/…
    – Devarshi
    Jan 7, 2013 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, 2013 at 9:57
  • @dbr.. thanks for informing me.. I have updated it now :-)
    – Devarshi
    Jan 13, 2013 at 9:01
2

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.

3
  • 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. Jul 22, 2009 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, 2009 at 19:35
  • Why the down-vote??? Nov 15, 2012 at 21:17
2

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.

4
  • 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. Jul 22, 2009 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, 2009 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, 2009 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, 2009 at 12:55
1

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
1
  • for all the things that Mac OS X doesn't already provide, there's Keyboard Maestro.
    – KG -
    Jul 29, 2011 at 3:59
0

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.

0

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.

0

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .