Tento stručný návod popisuje, jak kopírovat soubory a současně měnit vlastnictví a oprávnění z příkazového řádku v operačních systémech podobných Unixu. Obvykle používáme příkaz "cp" ke kopírování souborů z jednoho umístění do druhého. Poté pomocí příkazů "chmod" a "chown" změníme oprávnění a vlastnictví souboru. Všechny tyto úkoly však můžeme spojit dojednořádkového příkazu a přesto získáte stejný výsledek namísto spuštění tří po sobě jdoucích příkazů. To může být užitečné, když to chcete dělat pravidelně nebo v rámci skriptu.
Kopírování souborů a změna vlastnictví a oprávnění současně
Podívejte se na následující příklad.
Pro kopírování souborů a změnu oprávnění a vlastnictví obvykle děláme:
$ cp /dir1/file1 /dir2
$ chmod 775 -R /dir2
$ chown -R newowner:newgroup /dir2/file1
K tomuto jednoduchému úkolu však nemusíte používat tři příkazy. Můžeme to udělat jediným příkazem. Zde se nachází „instalace“ příkaz se hodí.
Myslel jsem, že příkaz "install" je určen k instalaci věcí. Ale, mýlil jsem se! Příkaz "install" se používá ke zkopírování souborů do vámi zvoleného umístění a nastavení atributů. Je součástí GNU coreutils, který je předinstalován se všemi distribucemi Linuxu.
Nyní mi dovolte ukázat, jak změnit oprávnění a vlastnictví souboru během kopírování.
$ sudo install -C -m 775 -o sk -g ostechnix /dir1/file1 /dir2
Výše uvedený příkaz zkopíruje soubor /dir1/file1 do /dir2 , změňte oprávnění souboru na 775 , vlastník na sk a skupina do ostechnix .
Pojďme rozebrat výše uvedený příkaz a uvidíme, co jednotlivé části příkazu dělají.
- -C, (--compare) :Porovnejte každý pár zdrojových a cílových souborů a v některých případech cíl vůbec neupravujte.
- -m, (--mode) :Nastavte režim oprávnění (jako v chmod).
- -o, (--owner) :Nastavení vlastnictví uživatele.
- -g, (--group) :Nastavení vlastnictví skupiny.
Další podrobnosti naleznete na manuálových stránkách.
$ man install
Doporučené čtení:
- Jak zachovat vlastnictví a oprávnění k souborům při kopírování souborů nebo adresářů
- ExplainShell – Najděte, co dělá každá část příkazu Linux
A to je vše. Doufám, že to pomůže.