Quelles options dois-je utiliser findpour exclure les fichiers cachés?
.hidden/visible.txt?
Quelles options dois-je utiliser findpour exclure les fichiers cachés?
.hidden/visible.txt?
Réponses:
J'ai trouvé ça ici :
find . \( ! -regex '.*/\..*' \) -type f -name "whatever"
\( ! -name '.*' \)?
\( ! -path '*/.*' \)ferais.
Il semble que le motif de négation glob ne soit pas bien connu. Pour que vous puissiez utiliser:
find . -name "[!.]*"
Cela ne répond pas à votre question, mais pour la tâche de trouver des fichiers non cachés, je préfère laisser trouver tous les fichiers, puis filtrer avec grep.
find . -type f | grep -v '/\.'
Semblable à votre approche mais peut-être un peu plus simple.
J'ai écrit un script appelé findnhqui, je crois, traite certains cas extrêmes plus que les réponses à cette question que j'ai pu trouver sur le Web.
#!/bin/bash
declare -a paths
while [ $# -ne 0 ]; do
case "$1" in -*) break ;; esac
paths+=("$1")
shift
done
find "${paths[@]}" \( -name . -o -name .. -o \! \( -name '.*' -prune \) \) "$@"
Par exemple, vous pouvez rechercher des fichiers et des répertoires non masqués dans un répertoire masqué explicitement spécifié à l'aide d'une commande similaire à findnh ~/.hiddendir/, qui s'affichera ~/.hiddendir/filemais ne le montrera pas ~/.hiddendir/.superhiddenfile.
findnh ~/.hiddendir/, je ne reçois rien. En dehors de cela, en quoi est-ce différent de ! -path '*/.*'et find … | grep -v '/\.'?
fdUtiliser fd, une alternative simple, beaucoup plus rapide et conviviale à find. Par défaut, il:
.gitignore, par défaut.Vérifiez l' analyse de référence .
lssauf si spécifiquement demandé: ce sont des fichiers complètement ordinaires à tous égards, c'est juste quelsvous pouvez les ignorer par défaut.