I have my Documents folder synced with iCloud drive, I want to exclude some sub folders from the iCloud drive is there a way to achieve this?


Adding one empty file named .nosync to a folder will prevent that folder from syncing.

You can also use this as a file extension to specific files, but the folder treatment is quite useful.

Once you've had a folder sync, you can now also prevent it from syncing on some (or all endpoints) with a utility named Bailiff, if for some reason you don't want just to delete the files from iCloud entirely and instead want to prevent the next "initial" sync.

| improve this answer | |
  • 7
    what if you put a hidden .nosync file in the folder will that also stop the folder from syncing? – malhal Aug 19 '17 at 17:03
  • 1
    I want to avoid syncing a "build" folder too. In that case, I cannot change the name of that folder. – John Pang Jan 7 '18 at 9:31
  • 2
    This is not really accurate. The directory continues to sync up when a .nosync file is added; additionally, iCloud even seems to behave like the contents of the directory are uploading, and may even take up space, though I don't want to risk losing space that will never return, as I've seen many reports of space never de-allocating. The directory will show up in iCloud, though appears empty. In Finder, the .nosync file will be deemed "inelligible," but all the other files are considered "Downloaded." This is is disconcerting. Compare: i.imgur.com/uYybYAK.png – danemacmillan Jul 9 '18 at 17:12
  • 4
    This didn’t work for me. I created an empty file called .nosync in the folder but everything else in the folder still synced. I created some new files in the folder and they were uploaded to iCloud Drive. I’m using Mojave. – Nate Nov 8 '18 at 5:11
  • 2
    2019-07-12 - this no longer seems to work. I have tried it on High Sierra (10.13.6) and Mojave (10.14.5) and even with .nosync files on each Mac, new content continues to sync. A sub-folder named "test.nosync" does not sync, nor do files which end with .nosync. But that's obviously less than ideal. – TJ Luoma Jul 12 '19 at 19:38

Here are all the file/folder names excluded so maybe one of these could be used for a workaround:


  • is .DS_Store
  • begins with (A Document Being Saved
  • contains .nosync (in any case)
  • is .ubd
  • contains .weakpkg
  • is tmp (in any case)
  • is .tmp (in any case)
  • is desktop.ini (in any case)
  • begins with ~$
  • is Microsoft User Data (in any case)
  • is $RECYCLE.BIN (in any case)
  • is iPhoto Library (in any case)
  • is Dropbox (in any case)
  • is OneDrive (in any case)
  • is IDrive-Sync (in any case)
  • is .dropbox (in any case)
  • is .dropbox.attr (in any case)
  • is icon\r (in any case)

Extension is (in any case):

  • tmp
  • photoslibrary
  • photolibrary
  • aplibrary
  • migratedaplibrary
  • migratedphotolibrary
  • migratedaperturelibrary

Extension is more than 2 chars and filename is ~

Source: reversing iCloud daemon.

Hopefully in a future version of the OS they let us put .nosync inside the folder to exclude it, or have an .IgnoreList like Resilio has.

| improve this answer | |
  • 1
    That's helpful, but can you please also add a source to your answer? – mklement0 Jan 9 '18 at 13:12
  • 2
    iCloud Drive also excludes symlinks ("aliases"). – tristan Jul 9 '18 at 20:09

Rename the folder or file:

mv fileorfolder fileorfolder.nosync

Create a symlink that get's synced:

ln -s fileorfolder.nosync fileorfolder

Repeat on every machine.

| improve this answer | |
  • Nice one! Works with Magento 2.3.2, excluding paths 'var/cache', 'var/session', 'var/view_preprocessed/pub/static', 'pub/media/catalog/product/cache', 'pub/static' gonna save a lot of battery life! – Maciek Rek Dec 2 '19 at 19:02
  • this worked for me. Also mentioned here 😊 – Foad Mar 25 at 10:44

It looks like directories that are named "tmp" or end with ".tmp" are not synced. A cloud icon with a line through it appears next to the directory along with anything inside of it.

| improve this answer | |

I created this Automator workflow to do it from the context menu in Finder https://github.com/tsdexter/iCloud-NoSync

| improve this answer | |

Node developers: To add an empty file named .nosync to every node_modules subfolder, run this shell script from a parent directory:

find . -name node_modules -exec touch {}/.nosync \;
| improve this answer | |

I just create folders directly under my user home that I want to keep only locally (separate from my iCloud folders).

| improve this answer | |

You must log in to answer this question.

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