Portál AbcLinuxu, 1. května 2025 16:04
Možná byste chtěli v pracovním adresáři vymazat všechny skryté soubory a adresáře. A tak bez rozmyslu možná napíšete: rm -r .*
Naštěstí neplatí, že si takto vymažete i nadřazené adresáře ('..'). Tímto se omlouvám, jestli jsem někoho zmátl.
Přesto zde ukážu, jak použít proměnnou GLOBIGNORE, kterou považuju za velmi užitečnou.
GLOBIGNORE
slouží k vyloučení určitých souborů nebo adresářů z "Pathname Expansion". Obsahuje dvojtečkou oddělené "patterns", tedy co má být vyloučeno z "Pathname Expansion".
#!/bin/bash export GLOBIGNORE=":" # Stačí, aby proměnná GLOBIGNORE byla nastavena a různá od null, # potom adresáře '.' a '..' budou automaticky ignorovány. export GLOBIGNORE=".:.." # De facto to samé. ...
Aktualizováno: Nechal jsem se unést jednou stránkou, ve které tvrdili, že rm -r .*
způsobí v Ubuntu 9.04 výmaz i nadřazených adresárů. Já jsem to bohužel zobecnil. Ještě jednou se omlouvám.
Tiskni
Sdílej:
root@archie /tmp/wtf # rm -fr .* rm: adresář nelze smazat: „.“ rm: adresář nelze smazat: „..“SunOS 5.10
watzkdav@dray5:/home/stud/watzkdav>mkdir test watzkdav@dray5:/home/stud/watzkdav>cd test watzkdav@dray5:/home/stud/watzkdav/test>rm -fr .* watzkdav@dray5:/home/stud/watzkdav/test>rm -r .* rm of . is not allowed rm of .. is not allowed watzkdav@dray5:/home/stud/watzkdav/test>ls -ld ../test drwx------ 2 watzkdav student 512 Dec 1 20:42 ../test/FreeBSD 7.3
[dave@shell ~/test]$ rm -fr .* rm: "." and ".." may not be removed
A Ubuntu?
rm -r
davat pozor, jestli neni po ceste nejaky namountovany disk... takhle jsem malem prisel o dulezite veci na externim disku ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.