Con quali opzioni devo utilizzare findper escludere i file nascosti?
.hidden/visible.txt?
Con quali opzioni devo utilizzare findper escludere i file nascosti?
.hidden/visible.txt?
Risposte:
Ho trovato questo qui :
find . \( ! -regex '.*/\..*' \) -type f -name "whatever"
\( ! -name '.*' \)?
\( ! -path '*/.*' \)sarebbe.
Sembra che il modello di negazione globale non sia ben noto. Quindi puoi usare:
find . -name "[!.]*"
Questo non risponde alla tua domanda, ma per il compito di trovare file non nascosti mi piace lasciare che trovi tutti i file quindi filtrali con grep.
find . -type f | grep -v '/\.'
Simile al tuo approccio ma forse un po 'più semplice.
Ho scritto una sceneggiatura chiamata findnhche credo gestisca alcuni casi limite meglio delle risposte a questa domanda che sono riuscito a trovare sul 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 \) \) "$@"
Ad esempio, è possibile trovare file e directory non nascosti all'interno di una directory nascosta specificata in modo esplicito con un comando simile findnh ~/.hiddendir/, che verrà mostrato ~/.hiddendir/filema non ~/.hiddendir/.superhiddenfile.
findnh ~/.hiddendir/, non ottengo nulla. A parte questo, in che cosa differisce da ! -path '*/.*'e find … | grep -v '/\.'?
fdUtilizzare fd, un'alternativa semplice, molto più veloce e user-friendly afind . Per impostazione predefinita, esso:
.gitignore, per impostazione predefinita.
lsse non diversamente richiesto: sono file completamente ordinari sotto tutti gli aspetti, è solo chelsti consente di ignorarli per impostazione predefinita.