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