GNU/Linux >> Znalost Linux >  >> Linux

Rychlejší způsob, jak rekurzivně změnit vlastníka/skupinu?

Použijte chown Rekurzivní možnost:

chown -R owner:group * .[^.]*

Zadáním obou * a .[^.]* bude odpovídat všem souborům a adresářům, které find bych. V současnosti je doporučený oddělovač : místo . . (Jak zdůraznil justins, pomocí .* není bezpečné, protože jej lze rozšířit tak, aby zahrnoval . a .. výsledkem je chown změna vlastnictví nadřazeného adresáře a všech jeho podadresářů.)

Pokud chcete změnit i vlastnictví aktuálního adresáře, lze to zjednodušit na

chown -R owner:group .

Pro příkazy jako chown které mají vlastní rekurzi, je nejrychlejší použít tuto možnost:

 chown -R owner:group * .[^.]*

Varování! V některých shellech tvar chown -R owner:group * .* nahradí vlastníka v kořenovém adresáři / . Protože .* znamená ../../../../root, ../bin ... etc . Všechny cesty. Nicméně nejpoužívanější shell, bash , neplatí . a .. , rozšiřující vzory.

Je však užitečné vědět, že hlavní problém, který zpomaluje vaše používání find je, že zavoláte chmown v každém jednotlivém nalezeném adresáři a souboru. Používá se mnohem rychleji:

find . -type f -exec chown <owner>:<group> {} +
find . -type d -exec chown <owner>:<group> {} +

jako pokaždé chown se volá s tolika parametry, kolik se vejde na příkazový řádek.

Tato změna funguje pro ostatní příkazy, které nemají vestavěnou možnost rekurze, jako je chown , také. A funguje (a zvyšuje rychlost) v situacích, kdy existuje taková možnost rekurze, ale nemůžete ji použít (např. při použití chmod a chcete změnit pouze adresáře).


Linux
  1. Priorita uživatele a vlastníka skupiny v oprávněních k souboru?

  2. Pokud Chown může změnit skupiny, proč byl vytvořen Chgrp?

  3. 12 Příklady příkazů Linux Chown pro změnu vlastníka a skupiny

  1. Rekurzivně měnit přípony souborů v Bash

  2. Změnit vlastníka a skupinu pouze pro konkrétní vlastníky

  3. Problémy s příkazy Rsync, oprávnění vlastníka a skupiny se nemění

  1. Jak používat příkaz chown ke změně vlastnictví v Linuxu

  2. Příklady příkazů chown v Linuxu

  3. Změnit vlastníka a skupinu v C?