Welche Optionen muss ich verwenden find
, um versteckte Dateien auszuschließen?
.hidden/visible.txt
?
Welche Optionen muss ich verwenden find
, um versteckte Dateien auszuschließen?
.hidden/visible.txt
?
Antworten:
Ich fand das hier :
find . \( ! -regex '.*/\..*' \) -type f -name "whatever"
\( ! -name '.*' \)
?
\( ! -path '*/.*' \)
würde.
Es scheint, dass das Glob-Muster der Negation nicht gut bekannt ist. So können Sie verwenden:
find . -name "[!.]*"
Dies beantwortet Ihre Frage nicht, aber für die Aufgabe, nicht versteckte Dateien zu finden, möchte ich alle Dateien finden lassen und dann mit grep filtern.
find . -type f | grep -v '/\.'
Ähnlich wie Ihr Ansatz, aber vielleicht ein bisschen einfacher.
Ich habe ein Skript namens geschrieben, findnh
das meiner Meinung nach bestimmte Randfälle besser behandelt als die Antworten auf diese Frage, die ich im Internet gefunden habe.
#!/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 \) \) "$@"
Beispielsweise können Sie nicht ausgeblendete Dateien und Verzeichnisse in einem explizit angegebenen ausgeblendeten Verzeichnis mit einem Befehl wie findnh ~/.hiddendir/
dem folgenden suchen , der ~/.hiddendir/file
jedoch nicht angezeigt wird ~/.hiddendir/.superhiddenfile
.
findnh ~/.hiddendir/
, bekomme ich nichts. Wie unterscheidet sich das von ! -path '*/.*'
und find … | grep -v '/\.'
?
fd
Verwenden Sie fd
eine einfache, viel schnellere und benutzerfreundliche Alternative zu find
. Standardmäßig ist es:
.gitignore
.Überprüfen Sie die Benchmark-Analyse .
ls
wenn nicht ausdrücklich angefordert: Es handelt sich in jeder Hinsicht um ganz gewöhnliche Dateien, es ist nur so, dassls
Sie sie standardmäßig ignorieren können.