Trebuie doar pentru a crea o listă de fișiere de potrivire glob, separate prin spațiu:
for file in .* *; do echo "$file"; done
Editați
Cel de mai sus poate rescrie într-o formă diferită folosind expansiunea orteză
for file in {.*,*}; do echo "$file"; done
sau chiar mai scurt : for file in {.,}*; do echo "$file"; done
Adăugarea căii pentru fișierele selectate:
for file in /path/{..?,.[!.],}*; do echo "$file"; done
Adăugarea căii pentru selectate fișiere:
for file in /path/{.,}*; do echo "$file"; done
Dacă doriți să fiți sofisticat și să eliminați din listă de obicei inutile .
și
pur și simplu schimbați {.,}*
la {..?,.[!.],}*
.
Pentru completare merită pentru a menționa că se poate seta și dotglob să potrivească fișierele punct cu *
pur.
shopt -s dotglob
În zsh
este necesar să setați suplimentar nullglob
pentru a preveni eroarea în caz de nepotrivire:
setopt nullglob
sau, alternativ, adăugați calificativul glob N
la model:
for file in /path/{.,}*(N); do echo "$file"; done
Comentarii