¿Qué opciones necesito usar find
para excluir archivos ocultos?
.hidden/visible.txt
?
¿Qué opciones necesito usar find
para excluir archivos ocultos?
.hidden/visible.txt
?
Respuestas:
Encontré esto aquí :
find . \( ! -regex '.*/\..*' \) -type f -name "whatever"
\( ! -name '.*' \)
?
\( ! -path '*/.*' \)
haría.
Parece que el patrón de negación global no se conoce bien. Entonces puedes usar:
find . -name "[!.]*"
Esto no responde a su pregunta, pero para la tarea de encontrar archivos no ocultos, me gusta dejar encontrar todos los archivos y luego filtrarlos con grep.
find . -type f | grep -v '/\.'
Similar a su enfoque, pero quizás un poco más simple.
Escribí un script llamado findnh
que creo que maneja ciertos casos extremos mejor que las respuestas a esta pregunta que he podido encontrar en la 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 \) \) "$@"
Por ejemplo, puede encontrar archivos y directorios no ocultos dentro de un directorio oculto especificado explícitamente con un comando como findnh ~/.hiddendir/
, que se mostrará ~/.hiddendir/file
pero no ~/.hiddendir/.superhiddenfile
.
findnh ~/.hiddendir/
, no obtengo nada. Aparte de eso, ¿cómo es esto diferente de ! -path '*/.*'
y find … | grep -v '/\.'
?
fd
Use fd
, una alternativa simple, mucho más rápida y fácil de usar find
. Por defecto, esto:
.gitignore
, por defecto.Verifique el análisis de referencia .
ls
menos que se solicite específicamente: son archivos completamente normales en todos los aspectos, es solo quels
te permite ignorarlos de forma predeterminada.