Portál AbcLinuxu, 11. listopadu 2025 19:12
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.