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.

Is there a way to prevent Mac OS X creating .DS_Store and other hidden meta-files on foreign volumes like NTFS and FAT? I share an NTFS partition with data like Thunderird & Firefox's profiles and apache's DocumentRoot, between Mac OS X and Windows, which is very handy. I don't mind if Mac OS X is not capable of indexing or otherwise doing the neat things those metafiles are for.

Note: It's not shared over a network, both operating systems and the shared partition coexist on the same disk, on the same machine.

share|improve this question
add comment

3 Answers

up vote 17 down vote accepted

If you are sharing the NTFS partition over a network, using SMB or some such, you can turn it off.

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

Apple tech bulletin "How to prevent .DS_Store file creation over network connections". I have not verified that this still works with Snow Leopard.

share|improve this answer
    
Thank you! I forgot about this problem. –  Nicolas Webb Sep 28 '09 at 13:14
    
I'm not sure that works unless they actually are on a network drive. –  alex Sep 28 '09 at 13:23
    
@alex I think you're right. The OP hasn't said how he is sharing the NTFS partition. I'll edit my answer, but it may be flat out wrong. –  Richard Hoskins Sep 28 '09 at 14:45
    
Nope, not over the network. One disk only, Mac OS in one partition, Windows on the other, and a NTFS partition for shared files. –  Petruza Sep 28 '09 at 17:51
1  
@Richard Hoskins: your answer refers to preventing the creation of .DS_Store files over the network. There's no way of stopping this if it's on the same drive. @sudo petrutza: OP means Original Poster (had no idea either) –  alex Sep 28 '09 at 18:01
show 1 more comment

I use this I set it up once when I got annoyed with the same problem. This method make the system do it all automatically.

  1. Create a script called Remove_Hidden_Files.sh by opening terminal and for example cd ~/Documents and type touch Remove_Hidden_Files.sh

  2. Using vi create the script. In Terminal type vi Remove_Hidden_Files.sh

  3. Press "I" to get in to insert mode and type the following (Hint to get # press alt and 3)

    #!/bin/bash
    # Removing the hidden files from my drive using the find command. Change xxx to the name of your external volume or path you wish to run the command on.
    # the -mount will stop the find command going to other volumes other than specified.
    
    
    find -x /Volumes/(xxx) -mount -name '.DS_Store' | xargs rm -rf
    find -x /Volumes/(xxx) -mount -name '.Spotlight-V100' | xargs rm -rf
    find -x /Volumes/(xxx) -mount -name '.Trashes' | xargs rm -rf
    find -x /Volumes/(xxx) -mount -name '._.Trashes' | xargs rm -rf
    find -x /Volumes/(xxx) -mount -name '.fseventsd' | xargs rm -rf
    
  4. Press escape to get out of insert mode and hold shift and press :

  5. Type wq! and then press enter

  6. Make the script executable chmod 775 ~/Documents/Remove_Hidden_Files.sh

  7. Test this out to make sure it works. You can easily do this by opening terminal and type cd /Volumes/(xxx) press enter and then ls -la to list all the files and you should see a .DS_Store if not navigate with the finder to the volume and then repeat the command and you should see one there.

  8. Open another terminal by pressing command key and N

  9. Type cd ~/Documents

  10. Type sh Remove_Hidden_Files.sh

  11. Go to the other terminal window and check the .DS_Store files are removed.

  12. Create a launch daemon. This means to run automatically so you don't have to do anything.

    Best way is to download lingon

  13. Create a daemon for you user account and call it com.remove_hidden_files.Launchd

  14. In the command box type sh ~/Documents/Remove_Hidden_Files.sh

  15. You can either type in the path or browse to it /Volumes/(xxx)

  16. Reboot the machine and try it out

Note if you rename your external drive, use a different named drive or path you will need to change the script.

share|improve this answer
3  
I like how this answer became a vim tutorial. Haha –  macek Oct 8 '10 at 18:46
    
You can add Mac logout scripts without paying for third party apps by using sudo defaults... seeskill.wordpress.com/2012/02/23/… –  mcandre Oct 16 '12 at 23:04
add comment

I use BlueHarvest for this purpose:

http://www.zeroonetwenty.com/blueharvest/

Works across all volumes and not just network shares as per Apple's solution.

share|improve this answer
add comment

protected by studiohack Apr 27 '11 at 1:14

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.