Z jakimi opcjami muszę korzystać, findaby wykluczyć ukryte pliki?
.hidden/visible.txt?
Z jakimi opcjami muszę korzystać, findaby wykluczyć ukryte pliki?
.hidden/visible.txt?
Odpowiedzi:
Znalazłem to tutaj :
find . \( ! -regex '.*/\..*' \) -type f -name "whatever"
\( ! -name '.*' \)?
\( ! -path '*/.*' \)by.
Wygląda na to, że globalny wzór negacji nie jest dobrze znany. Możesz więc użyć:
find . -name "[!.]*"
To nie odpowiada na twoje pytanie, ale dla zadania znajdowania nie ukrytych plików chcę pozwolić znaleźć wszystkie pliki, a następnie filtrować za pomocą grep.
find . -type f | grep -v '/\.'
Podobne do twojego podejścia, ale może nieco prostsze.
Napisałem skrypt o nazwie, findnhktóry moim zdaniem lepiej radzi sobie z niektórymi przypadkami krawędziowymi niż odpowiedzi na to pytanie, które udało mi się znaleźć w Internecie.
#!/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 \) \) "$@"
Na przykład, możesz znaleźć nie ukryte pliki i katalogi w wyraźnie określonym ukrytym katalogu za pomocą polecenia podobnego findnh ~/.hiddendir/, które pokaże, ~/.hiddendir/fileale nie ~/.hiddendir/.superhiddenfile.
findnh ~/.hiddendir/, nic nie dostaję. Poza tym, czym to się różni od ! -path '*/.*'i find … | grep -v '/\.'?
fdUżyj fdprostej, znacznie szybszej i przyjaznej dla użytkownika alternatywy dla find. Domyślnie:
.gitignoreDomyślnie ignoruje wzorce z twojego .Sprawdź analizę testu porównawczego .
lschyba że wyraźnie o to poproszono: są to całkowicie zwykłe pliki pod każdym względem, tylkolsdomyślnie pozwala je zignorować.