Well you also have the ._* files which are usually created when a file is created or copied. Every time I use a drive to transfer half the files are ._* files. It seems as if they unavoidable. In my repos I always add .DS_Store and ._* to gitignore so they aren't transferred. One of my jobs other workers also complained about those files. In Windows and Linux just sort, then delete. Option #1: Before you eject the disk, open Terminal and manually remove those files. Thereby the Windows and Linux boxes won't receive them. Just right click or control-click on the drive and select "New Terminal At Folder". You need to delete after transfers are complete. If it's not a disk or a folder, can you still open a Terminal there? Some network utilities allow the ability to see .* files, so simply delete them after your transfers. Option #2: TAR the files, excluding .DS_Store and ._* during the packing. Windows, Mac, and Linux can all unpack TAR archives.