Wystarczy aby utworzyć listę zgodnych plików glob, oddzielonych spacją:
for file in .* *; do echo "$file"; done
Edytuj
Powyższe można przepisać w innej formie za pomocą rozwinięcia nawiasów klamrowych
for file in {.*,*}; do echo "$file"; done
lub nawet krócej : for file in {.,}*; do echo "$file"; done
Dodawanie ścieżki do wybranych plików:
for file in /path/{..?,.[!.],}*; do echo "$file"; done
Dodawanie ścieżki do wybranych pliki:
for file in /path/{.,}*; do echo "$file"; done
Jeśli chcesz być zaawansowany i usunąć z listy zwykle niepotrzebne .
i
po prostu zmień {.,}*
na {..?,.[!.],}*
.
Aby uzyskać kompletność, warto wspomnieć, że można również ustawić dotglob tak, aby dopasować pliki kropek z czystym *
.
shopt -s dotglob
W zsh
należy dodatkowo ustawić nullglob
, aby zapobiec błędowi w przypadku braku dopasowania:
setopt nullglob
lub alternatywnie dodaj kwalifikator glob N
do wzorca:
for file in /path/{.,}*(N); do echo "$file"; done
Komentarze