Portál AbcLinuxu, 14. května 2025 02:17
Řešení dotazu:
/home
, pak třeba takhle nějak:
for d in /home/* do cp /tmp/Desktop/ $d donePodrobnosti o cyklu
for
si najděte v manuálové stránce k vašemu shellu.
Podla mojho nazoru by bolo vhodnejsie nieco taketo:
for i in /home/*/Desktop
do
cp -r /tmp/Desktop/* "$i"
done
Vyhol by si sa prepisaniu celeho obsahu povodneho /home/uzivatel/Desktop a taktiez je tam podstatne mensia sanca, ze v nejakom inom adresare v /home bude struktura vyhovujuca zadanej napr. /home/nie_je_uzivatel/Desktop . A kedze tato struktura sa tam nachadzat nebude alebo bude, ale menej ako pri vsetkych, tak je toto riesenie zatial najspravnejsie.
p.s.: Ten moj postup cez xargs toto riesil, len som si to neuvedomil hned pri pisani prispevku a zavadzal som nasledne :D
Zdravim, jedna moznost je ta s for loop, co mne pride prirodzenejsie. Potom je tu ale tiez moznost dalsia:
pato@debian:~/test$ ls *
test.file
test1:
test2:
test3:
pato@debian:~/test$ ls -d /home/pato/test/*/ | xargs -n 1 cp test.file
pato@debian:~/test$
pato@debian:~/test$ ls *
test.file
test1:
test.file
test2:
test.file
test3:
test.file
Takze v tvojom pripade by to bolo nieco taketo:
ls -d /home/*/Desktop | xargs -n 1 cp -r co_treba_skopirovat
alebo tiez mozes nahradit znak * listom uzivatelov. Pretoze v tomto pripade za zapise potrebny subor do vsetkych zloziek v adresari /home/ a tam by mohli byt aj dalsie adresare ako napr. lost+found a dalsie.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.