Portál AbcLinuxu, 10. května 2025 05:30

Dotaz: Jednoduchy script na kopirovani souboru

10.2.2008 17:23 Petr
Jednoduchy script na kopirovani souboru
Přečteno: 1216×
Odpovědět | Admin
Ahoj, jsem naprosty zacatecnik a potreboval bych vytvorit jednoduchy script, ktery by kopiroval soubor, nebo adresar se vsema souborama, podresarema, nebo nekolik souboru
syntaxe by byla napr.
kopiruj somefile.jpg
,nebo
kopiruj some*.jpg
,nebo
kopiruj somedirectory
A 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
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

mess avatar 10.2.2008 17:30 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: Jednoduchy script na kopirovani souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na to nepotřebujš skript, na to ti stačí 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/
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
Dalibor Smolík avatar 10.2.2008 18:01 Dalibor Smolík | skóre: 54 | blog: Postrehy_ze_zivota | 50°5'31.93"N,14°19'35.51"E
Rozbalit Rozbalit vše Re: Jednoduchy script na kopirovani souboru
Přesně tak, ale může se to do toho skriptu dát.
#! /bin/sh
# nazev skriptu: /home/zalohovani 
cp -ru /home/pepa/soubory /home/jarda
a takový skript je možné dát do cronu, aby zálohoval pravidelně třeba každé dvě hodiny. Jednoduché, praktické.
Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
10.2.2008 17:37 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Jednoduchy script na kopirovani souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
#!/bin/sh
for kam in /home/petr /home/michal ...; do
    echo -n "Kopiruji do $kam";
    cp -r "$@" "$kam";
    echo " [hotovo]";
done
I am always ready to learn although I do not always like to be taught. (W. Churchill)
10.2.2008 18:04 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Jednoduchy script na kopirovani souboru

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ářů.

I am always ready to learn although I do not always like to be taught. (W. Churchill)
10.2.2008 18:17 Petr
Rozbalit Rozbalit vše Re: Jednoduchy script na kopirovani souboru
Ano, tak jsem to myslel
10.2.2008 18:25 Petr
Rozbalit Rozbalit vše Re: Jednoduchy script na kopirovani souboru
Akorat si jeste nevim rady, jak zmenit vlastnika souboru prave no toho uzivatele, napr soubory se nejprve pomoci toho for cyklu nakopiruji do /home/pavel a zde potrbuju pomoci chown zmenit vlastnika souboru na pavla, potom se nakopiruji do /home/franta a zase zmenit vlastnika na franta. Diky
10.2.2008 18:39 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Jednoduchy script na kopirovani souboru

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
I am always ready to learn although I do not always like to be taught. (W. Churchill)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.