Quelles options dois-je utiliser find
pour exclure les fichiers cachés?
.hidden/visible.txt
?
Quelles options dois-je utiliser find
pour 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é findnh
qui, 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/file
mais 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 '/\.'
?
fd
Utiliser 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 .
ls
sauf si spécifiquement demandé: ce sont des fichiers complètement ordinaires à tous égards, c'est juste quels
vous pouvez les ignorer par défaut.