Tato otázka zde již obsahuje odpovědi :Jak přesunete všechny soubory (včetně skrytých) z jednoho adresáře do druhého?
(12 odpovědí)
Uzavřeno před 6 lety.
Linux
(12 odpovědí)
Uzavřeno před 6 lety.
Chci globovat každý skrytý soubor a adresář, ale ne aktuální (.
) a nadřazený adresář (..
).
Používám bash.
Sledujte aktuální chování:
$ ls -a
. .. ...a ...aa ..a ..aa .a .aa .aaa a
$ echo *
a
$ echo .*
. .. ...a ...aa ..a ..aa .a .aa .aaa
Chtěl bych .*
chovat se takto
$ echo .*
...a ...aa ..a ..aa .a .aa .aaa
Existuje možnost shellu dotglob
$ shopt -s dotglob
to svým způsobem funguje; nyní mohu použít *
globovat vše (skryté nebo ne), ale ne .
a ..
$ echo *
...a ...aa ..a ..aa .a .aa .aaa a
ale teď nedokážu rozlišit mezi skrytým nebo ne. Také .*
stále globs .
a ..
$ echo .*
. .. ...a ...aa ..a ..aa .a .aa .aaa
Existuje způsob, jak vytvořit .*
nerozbalit na .
a ..
?
Přijatá odpověď:
Můžete použít GLOBIGNORE
proměnnou pro skrytí .
a ..
adresáře. Tím se automaticky nastaví také dotglob
možnost, takže *
nyní odpovídá skrytým i neskrytým souborům. Opět můžete ručně zrušit nastavení dotglob
, ale to pak dává chování, které chcete.
Viz tento příklad:
$ ls -a
. .. a .a ..a
$ GLOBIGNORE=".:.."
$ shopt -u dotglob
$ echo * # all (only non-hidden)
a
$ echo .* # all (only hidden)
.a ..a
Linux – Jak poznat, že CPU podporuje 64bitové operační systémy pod Linuxem?
Jaký je rozdíl mezi Sudo Su – a Sudo Su –?