Si vous passez de temps en temps d’OS X à un autre système, les fichiers .DS_Store
doivent parfois vous énerver : OS X a tendance à ajouter ces derniers dans tous les dossiers. Il est possible de bloquer ce comportement sur le réseau mais – malheureusement – pas sur une clé USB (contrairement à ce que l’on peut parfois lire).
Le premier truc à savoir : c’est quoi un .DS_Store
? Le nom signifie Desktop Service Store et il est précédé d’un point parce que (Mac) OS X et les UNIX en général cachent les fichiers dont le nom commence par un point. Le fichier contient en fait la position des icônes, la taille des icônes, le fond d’écran du dossier, etc. En gros, tous les paramètres d’affichage du Finder sont stockés dans ce fichier. le Finder va donc créer un fichier .DS_Store
(caché) dans chaque dossier où vous allez modifier les paramètres par défaut : si vous naviguez avec la vue en colonnes dans le Finder, il ne devrait pas créer de fichiers .DS_Store
.
Sur un Mac, le fichier ne pose normalement pas de soucis, vu que le système le cache. Le problème survient essentiellement si vous transférez des données : les dossiers compressés contiennent le fichier, tout comme les clés USB, les partages réseaux, etc. Et comme Windows a tendance à afficher les fichiers dont le nom commence par un point (et qu’une bonne partie des utilisateurs affiche les fichiers cachés), ça peut vite devenir énervant.
Il existe une commande pour empêcher la création des fichiers sur un partage réseau, ce qui est pratique pour éviter d’embêter d’autres personnes. Attention, et c’est logique, empêcher la création des fichiers empêche aussi au Finder de sauver les données : les paramètres par défaut seront donc utilisés automatiquement et les déplacements d’icônes ne seront pas sauvegardés.
defaults write com.apple.desktopservices DSDontWriteNetworkStores true
Après avoir tapé la commande, vous pouvez soit redémarrer soit relancer le Finder (killall Finder
).
J’ai aussi vu plusieurs fois une commande qui doit (selon les auteurs) empêcher la création du .DS_Store
mais ça ne fonctionne tout simplement pas. Elle se retrouve dans diverses listes de trucs à corriger sous Mac OS X, qui ne sont donc visiblement pas testées… La commande (pour mémoire, vu qu’en plus elle est fausse, le -bool
ne sert à rien).
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
(attention, donc, la ligne précédente ne fonctionne pas)
Effectivement, le côté « tout ou rien » me posait souci. Depuis quelques années maintenant, j’utilise donc un script de type Service (merci à Automator) que j’ai intitulé « Compresser pour PC » en appelant un script Shell (entrée comme argument) :
for f in « $@ »
do
cd $(dirname « $f »)
zip -r « $f.zip » « $(basename « $f ») » -x « */\.* »
done
C’est simple et c’est propre pour mes destinataires de l’autre monde.
Bonjour,
Personnellement, j’utilise l’utilitaire gratuit Hidden Cleaner, très efficace…
http://kerosene.free.fr
Merci pour Hidden Cleaner qui est gratuit.
Je ne connais que http://www.zeroonetwenty.com/blueharvest/ qui n’est pas gratuit !
Et pour completer, ce petit batich qui nettoie les clés ou lecteurs (tiré de http://www.matrix44.net/blog/?p=1719 ):
Perso, il me convient même si le « attrib -r -a -s -h * /s » me dérange un peu puisque il nettoie tous les attributs de tous les fichiers sans distinction.
@echo off
echo Removing attributes …
attrib -r -a -s -h * /s
call :remove_dirs
call :remove_files
echo DONE
pause
goto end
:remove_dirs
set APPLE_DIRS=(.AppleDouble .AppleDesktop .AppleDB .TemporaryItems .Trashes .fseventsd)
for %%i in %APPLE_DIRS% do (
for /r %%j in (%%i) do (
if exist %%j\nul (
echo Removing directory: %%j
rmdir /s /q « %%j »
)
)
goto :EOF
:remove_files
set APPLE_FILES=(.DS_Store ._.DS_Store ._.TemporaryItems ._.Trashes)
for %%k in %APPLE_FILES% do (
for /r %%l in (%%k) do (
if exist %%l (
echo Removing file: %%l
del /q /f « %%l »
)
)
)
for /r %%m in (*) do (
if exist %%~pm._%%~nm%%~xm (
echo Removing file: %%~pm._%%~nm%%~xm
del /q « %%~pm._%%~nm%%~xm »
)
)
goto :EOF
:end