Question

I'm working on a WebDAV-server which presents information from a database in a virtual filesystem.

So the user is able to create files on the server and they are automagically created back in the db.

Now as soon as the user connects to the server, some OSs tend to create their own metadata-files/folders immediately (thinking about Thumbs.db, desktop.ini, .fseventsd, DS_Store, ...)

This files clutter up the database - and tend to bring down the performance too (OSX for example does a lot of indexing as soon as the folder is opened, which means tons of hits against the database)

So for performances and cleanliness's-sake I'm looking for a "complete" list of (meta)files/folders created by various OS - which are "safe" to be suppressed by the server.

my list so far:

//TODO: get rid of system files
/*
 *** everywhere
 * Thumbs.db
 * desktop.ini
 * .DS_Store
 * .desktop
 * AlbumArt*.jpg
 * Folder.jpg
 * ._[ParentFoldername]   // e.g. /foo/bar/._bar
 * ._[ExistingFoldername] // e.g. /foo/._bar
 * ._[ExistingFilename]   // e.g. /foo/bar/._baz (baz is a legit file inside bar)
 * ._.                    // ?!? 
 *** root only
 * System Volume Information
 * .fseventsd
 * $recycling.bin
 * $Recycle.Bin
 * Recycled
 * .Trashes
 * hiberfil.sys
 * pagefile.sys
 * .hidden
 * mach_kernel
 * Backups.backupdb
 * Contents
 *
 *** special
 * .metadata_never_index // fake this file in root
 *                       // (should keep OSX from indexing)
 */

my existing test-structure for OSX was:

/MarioDemo/
/FrankTest/
/TestItemRelation/

/.metadata_never_index

/MarioDemo/Alphabetical/
/MarioDemo/Hierarchical/

here the files OSX requests when opening /MarioDemo/:

propfinds from OSX

Was it helpful?

Solution

Your list is already pretty complete, I guess. I would only add the following unless you specifically want to filter out particular file types:

.DS_Store?
._*
.Spotlight-V100
.DocumentRevisions-V100
.fseventsd
.MobileBackups
Icon?
__MACOSX
ehthumbs.db
desktop.ini
*.desktop
*.bak
.*~
*~

I took these from a project called Ignoramus. The relevant file with patterns is here, in emacs format. The list for exact matches is printed below, that's where I took these from:

"$RECYCLE.BIN"                         ; ms-windows
".AppleDouble"                         ; OS X
".DS_Store"                            ; OS X
".DocumentRevisions-V100"              ; OS X
".LSOverride"                          ; OS X
".Rhistory"                            ; R
".Spotlight-V100"                      ; OS X
".TemporaryItems"                      ; OS X
".Trashes"                             ; OS X
".actionScriptProperties"              ; actionscript
".apt_generated"                       ; gwt
".build"                               ; perl
".buildpath"                           ; eclipse
".builds"                              ; visualstudio
".bzr"                                 ; bazaar
".cdv"                                 ; codeville
".classpath"                           ; eclipse
".com.apple.timemachine.donotpresent"  ; OS X
".com.apple.timemachine.supported"     ; OS X
".coverage"                            ; python
".cproject"                            ; eclipse
".directory"                           ; KDE
".dropbox"                             ; dropbox
".dropbox.cache"                       ; dropbox
".emacs.desktop"                       ; emacs desktop.el
".emacs.desktop.lock"                  ; emacs desktop.el
".eunit"                               ; erlang
".externalToolBuilders"                ; eclipse
".flexProperties"                      ; actionscript
".fseventsd"                           ; OS X
".git"                                 ; git
".hg"                                  ; mercurial
".idea"                                ; various
".ido.last"                            ; emacs ido-mode
".last_cover_stats"                    ; perl
".lein-deps-sum"                       ; leiningen
".loadpath"                            ; eclipse
".netrwhist"                           ; vim
".org-id-locations"                    ; emacs org-mode
".pc"                                  ; quilt
".project"                             ; eclipse
".projectile"                          ; emacs projectile
".recentf"                             ; emacs recentf
".redcar"                              ; redcar
".rspec"                               ; rails
".sass-cache"                          ; sass
".scala_dependencies"                  ; scala
".svn"                                 ; subversion
".tox"                                 ; python
".wmncach.el"                          ; emacs WoMan
".yardoc"                              ; yard
"_MTN"                                 ; monotone
"__history"                            ; delphi
"_build"                               ; perl
"_cgo_defun.c"                         ; go
"_cgo_gotypes.go"                      ; go
"_darcs"                               ; darcs
"_obj"                                 ; go
"_sgbak"                               ; vault
"_site"                                ; jekyll
"_test"                                ; go
"_testmain.go"                         ; go
"_yardoc"                              ; yard
"aclocal.m4"                           ; automake
"auto-save-list"                       ; emacs
"autom4te.cache"                       ; autoconf
"bin-debug"                            ; various
"bin-release"                          ; various
"blib"                                 ; perl
"build"                                ; various
"Build"                                ; various
"Build.bat"                            ; perl
"COMMIT_EDITMSG"                       ; git
"cmake_install.cmake"                  ; cmake
"CMakeCache.txt"                       ; cmake
"CMakeFiles"                           ; cmake
"cover_db"                             ; perl
"cscope.csd"                           ; cscope
"cscope.files"                         ; cscope
"cscope.inc"                           ; cscope
"cscope.lst"                           ; cscope
"cscope.out"                           ; cscope
"cscope.out.po"                        ; cscope
"cscope.tmplist"                       ; cscope
"CVS"                                  ; CVS
"Debug"                                ; various
"debug"                                ; various
"depcomp"                              ; automake
"DerivedData"                          ; xcode
"Desktop.ini"                          ; ms-windows
"ehthumbs.db"                          ; ms-windows
"git-rebase-todo"                      ; git
"gwt-unitCache"                        ; gwt
"gwt_bree"                             ; gwt
"install-sh"                           ; automake
"install_manifest.txt"                 ; cmake
"InstalledFiles"                       ; ruby
"Makefile.in"                          ; automake
"MCVS"                                 ; meta-CVS
"META.yml"                             ; perl
"MERGE_MSG"                            ; git
"minimal-session-saver-data.el"        ; emacs minimal-session-saver
"MYMETA.yml"                           ; perl
"nbbuild"                              ; netbeans
"nbdist"                               ; netbeans
"nosetests.xml"                        ; python
"pm_to_blib"                           ; perl
"Profile"                              ; various
"profile"                              ; various
"RCS"                                  ; RCS
"Release"                              ; various
"release"                              ; various
"SCCS"                                 ; SCCS
"Session.vim"                          ; vim
"slprj"                                ; matlab
"SQUASH_MSG"                           ; git
"TAGS"                                 ; ctags/etags
"tags"                                 ; ctags/etags
"TestResult"                           ; visualstudio
"testresult"                           ; visualstudio
"Thumbs.db"                            ; ms-windows
"tmtags"                               ; textmate
"xcuserdata"                           ; xcode
"xhtml-loader.rnc"                     ; emacs nxhtml
"{arch}"                               ; arch - todo is this correct?
"~.dep"                                ; xcode
"~.dot"                                ; xcode
"~.nib"                                ; xcode
"~.plst"                               ; xcode
"test.out"                             ; generic testing
"test_out"                             ; generic testing
"test.output"                          ; generic testing
"test_output"                          ; generic testing
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top