Portál AbcLinuxu, 10. května 2025 05:30
syntaxe by byla napr. kopiruj somefile.jpg ,nebo kopiruj some*.jpg ,nebo kopiruj somedirectoryA potrboval bych tim zkopirovat soubory,adresare podle vstupu z /home/petr do /home/michal , /home/pavel a /home/franta a nastavit jim prislusla prava techto uzivatelu, neporadil by mi nekdo nejakym prikladem jak toto udelat? Predem mnohokrat dekuji
cp
.
cp /cesta/odkud /cesta/kam #Příklad: cp somefile.jpg /kam/zkopirovat/ cp some*.jpg /kam/zkopirovat/ cp -r /nějaký/adresář /kam/zkopírovat/
#! /bin/sh # nazev skriptu: /home/zalohovani cp -ru /home/pepa/soubory /home/jardaa takový skript je možné dát do cronu, aby zálohoval pravidelně třeba každé dvě hodiny. Jednoduché, praktické.
#!/bin/sh for kam in /home/petr /home/michal ...; do echo -n "Kopiruji do $kam"; cp -r "$@" "$kam"; echo " [hotovo]"; done
Sorry, úplně mimo - přečetl jsem si špatně otázku - myslel jsem, že se má kopírovat to samé do více rúzných adresářů.
Aha, takže neumím číst dvakrát . Změnu vlastníka může provádět pouze root, takže to musí běžet pod ním a pak použít
chown -R
. Pokud se to má kopírovat vždy do domovských adresářů, tak stačí iterovat přes jména a adresář vytáhnout z /etc/passwd
:
adresar=`grep "^$uzivatel:" </etc/passwd | cut '-d:' -f 6`
Celkově teda asi takhle (ale nezkoušel jsem to):
#!/bin/sh for uzivatel in petr michal ...; do adresar=`grep "^$uzivatel:" </etc/passwd | cut '-d:' -f 6` echo -n "Kopiruji pro $uzivatel ($adresar)"; cp -r "$@" "$adresar"; chown -R $uzivatel $adresar; echo " [hotovo]"; done
Pokud by se měl vlastník změnit jen u těch nových, tak to bude chtít něco jako:
for i in "$@"; do chown $uzivatel $adresar$i; done
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.