Nous avons un Ubuntu NAS partageant SMB et Netatalk avec certains Mac et j’utilise souvent locate
pour rechercher mes fichiers. Malheureusement, depuis l’installation de Netatalk, il a écrit des tonnes de .AppleDouble
fichiers en cache à partager plus rapidement avec AFP (je suppose) et mon locate
imprime toutes ces informations. J'utilise constamment cp
sur des fichiers uniquement pour constater que j'ai copié un fichier caché inutile lors d'un accident.
J'utilisais locate -i filename | fgrep -v ".AppleDouble" | fgrep -v "._"
pour supprimer ces fichiers cachés, mais j'aimerais changer ma bashrc
de telle sorte qu'il s'agisse plus ou moins de la valeur par défaut.
Quel est le moyen le plus efficace d’exclure des fichiers cachés de l’impression locale? Avec regex? À l'heure actuelle, j'écrirais un script qui transmet un argument pour localiser et dirige vers grep comme indiqué, mais s'il existe un moyen plus simple, veuillez me le faire savoir.
Pour exclure les fichiers cachés lors de l'utilisation de Locate, essayez ceci:
locate -i --regex "^/absolute/path/to/the/directory/[^\.]+"
Si le répertoire contient des fichiers tels que .hidden
, ..hidden
, ...hiden
, ils seront également exclus. Si vous souhaitez uniquement exclure .hidden
, supprimez le +
de la fin:
locate -i --regex "^/absolute/path/to/the/directory/[^\.]"
ou simplement (l'expression rationnelle étendue n'est pas nécessaire aussi):
locate -ir "^/absolute/path/to/the/directory/[^\.]"
EDIT: Après avoir édité la question, sa signification entière est maintenant différente et ma réponse initiale n’est pas correcte dans le contexte modifié. Exécutez ce qui suit pour exclure tous les fichiers cachés de la sortie de locate
(étant donné que le nom du fichier ne contient pas /
):
locate -i "file_name" | egrep -v "/(\.)+[^/]+$"