Kirjoittaja Aihe: [Ratkaistu] Kansioden sisällön kopiointi yhteen kansioon... miten?  (Luettu 7291 kertaa)

0 jäsentä ja 1 Vieras katselee tätä aihetta.

Poissa jkaija

  • Jäsen
  • Viestejä: 551
  • Sukupuoli: Mies
    • OtaNetti
Moro,
Olisi tarve saada kopioitua tiettyjen kansioiden sisältö yhteen kansioon ylikirjoittaen jo kansiossa oleva tieto.
Eli lähtö kansiot olisi
/srv/www/htdocs/zm/events/4
jossa on alikansiot 1,2,3,4,5 jne., joita tulee automaattisesti lisää
kohde kansio olisi
/srv/www/htdocs/koti/images/webcam/cam1/
johon ei saa tulla alikansiota ainoastaan ne kuvat noista lähtökansiosta ja jos on saman nimisiä kuvia niin ne ylikirjoitetaan.
cp -f -r -t /srv/www/htdocs/koti/images/webcam/cam1 /srv/www/htdocs/zm/events/4/
ei toimi se kopioi myös kansiot.

Ilmeisesti pitäisi tehdä jonkinlainen skripti, osaisko joku auttaa ???
« Viimeksi muokattu: 14.02.2010 - klo:21:53 kirjoittanut jkaija »
HP Pavilion15-p076no, Tumbleweed 64bit Plasma
Asus Prime X570P, AMD Ryzen 5 3600, 32GT, GeForce RTX2080, Tumbleweed 64bit Plasma

guest728

  • Vieras
Vs: Kansioden sisällön kopiointi yhteen kansioon... miten?
« Vastaus #1 : 14.02.2010 - klo:21:01 »
Kokeilin tätä
Koodia: [Valitse]
~/xDocs/test> mkdir kohde                                                                             
~/xDocs/test> mkdir lähde                                                                             
~/xDocs/test> mkdir lähde/1                                                                           
~/xDocs/test> mkdir lähde/2
~/xDocs/test> mkdir lähde/3
~/xDocs/test> touch lähde/1/a.txt
~/xDocs/test> touch lähde/2/b.txt
~/xDocs/test> touch lähde/3/c.txt
~/xDocs/test> touch lähde/3/b.txt
~/xDocs/test> cp lähde/*/* kohde
cp: will not overwrite just-created `kohde/b.txt' with `lähde/3/b.txt'
~/xDocs/test> ls kohde
a.txt  b.txt  c.txt
eli vain ensimmäinen lähteen samannimisistä tiedostoista kopioituu. Ylikirjoitusmoodiksi voi valita joko --force tai --remove-destination, mutta se ei vaikuta samannimisten lähdetiedostojen valintaan. Jos lähteitten syvyys vaihtelee, voi cp:lle syöttää tiedostolistan find:sta.
OS 11.2, GNU bash, version 4.0.35(1)-release (x86_64-suse-linux-gnu)

guest728

  • Vieras
Vs: Kansioden sisällön kopiointi yhteen kansioon... miten?
« Vastaus #2 : 14.02.2010 - klo:21:16 »
Tiedostolistan syöttö find:sta
Koodia: [Valitse]
~/xDocs/test> rm kohde/*
~/xDocs/test> ls kohde
~/xDocs/test> cp $(find lähde -type f -print) kohde
cp: will not overwrite just-created `kohde/b.txt' with `lähde/3/b.txt'
~/xDocs/test> ls kohde
a.txt  b.txt  c.txt
~/xDocs/test>

Poissa harmie

  • Valvoja
  • *
  • Viestejä: 2789
  • Sukupuoli: Mies
Vs: Kansioden sisällön kopiointi yhteen kansioon... miten?
« Vastaus #3 : 14.02.2010 - klo:21:28 »
tässä sama find toisessa muodossa

Koodia: [Valitse]
find /srv/www/htdocs/zm/events/ -type f -exec cp {} /srv/www/htdocs/koti/images/webcam/cam1/ \;

Poissa jkaija

  • Jäsen
  • Viestejä: 551
  • Sukupuoli: Mies
    • OtaNetti
Vs: Kansioden sisällön kopiointi yhteen kansioon... miten?
« Vastaus #4 : 14.02.2010 - klo:21:33 »
Koodia: [Valitse]
@linux-poyta:~> cp --force /srv/www/htdocs/zm/events/4/*/* /srv/www/htdocs/koti/images/webcam/cam2
cp: ei korvata juuri luotua tiedostoa ”/srv/www/htdocs/koti/images/webcam/cam2/079-capture.jpg” tiedostolla ”/srv/www/htdocs/zm/events/4/174/079-capture.jpg”
.
.
cp --remove-destination /srv/www/htdocs/zm/events/4/*/* /srv/www/htdocs/koti/images/webcam/cam2
cp: ei korvata juuri luotua tiedostoa ”/srv/www/htdocs/koti/images/webcam/cam2/079-capture.jpg” tiedostolla ”/srv/www/htdocs/zm/events/4/174/079-capture.jpg”
.
.
@linux-poyta:~> cp $(find /srv/www/htdocs/zm/events/4/*/* -type f -print) /srv/www/htdocs/koti/images/webcam/cam2
cp: ei korvata juuri luotua tiedostoa ”/srv/www/htdocs/koti/images/webcam/cam2/079-capture.jpg” tiedostolla ”/srv/www/htdocs/zm/events/4/174/079-capture.jpg”
.
.
Eli noi ei kirjoita toisten päälle ?
kokeilenpa tuota viimeistä minkä laitoit
Koodia: [Valitse]
@linux-poyta:~> find /srv/www/htdocs/zm/events/ -type f -exec cp {} /srv/www/htdocs/koti/images/webcam/cam2/
find: "-exec":n parametri puuttuu
???
HP Pavilion15-p076no, Tumbleweed 64bit Plasma
Asus Prime X570P, AMD Ryzen 5 3600, 32GT, GeForce RTX2080, Tumbleweed 64bit Plasma

Poissa harmie

  • Valvoja
  • *
  • Viestejä: 2789
  • Sukupuoli: Mies
Vs: Kansioden sisällön kopiointi yhteen kansioon... miten?
« Vastaus #5 : 14.02.2010 - klo:21:35 »
muistithan laittaa tonne komennon loppuun ton \;

Poissa jkaija

  • Jäsen
  • Viestejä: 551
  • Sukupuoli: Mies
    • OtaNetti
Vs: Kansioden sisällön kopiointi yhteen kansioon... miten?
« Vastaus #6 : 14.02.2010 - klo:21:37 »
muistithan laittaa tonne komennon loppuun ton \;
no mutta kun se näytti ihan hymiöltä  :D
Koodia: [Valitse]
@linux-poyta:~> find /srv/www/htdocs/zm/events/ -type f -exec cp {} /srv/www/htdocs/koti/images/webcam/cam2/ \;
cp: tavallisen tiedoston ”/srv/www/htdocs/koti/images/webcam/cam2/.directory” luominen ei onnistu: Lupa evätty
cp: tavallisen tiedoston ”/srv/www/htdocs/koti/images/webcam/cam2/.directory” luominen ei onnistu: Lupa evätty
cp: tavallisen tiedoston ”/srv/www/htdocs/koti/images/webcam/cam2/.directory” luominen ei onnistu: Lupa evätty
cp: tavallisen tiedoston ”/srv/www/htdocs/koti/images/webcam/cam2/.directory” luominen ei onnistu: Lupa evätty
pitääpä tarkistaa mitä se nyt teki...
HP Pavilion15-p076no, Tumbleweed 64bit Plasma
Asus Prime X570P, AMD Ryzen 5 3600, 32GT, GeForce RTX2080, Tumbleweed 64bit Plasma

guest728

  • Vieras
Vs: Kansioden sisällön kopiointi yhteen kansioon... miten?
« Vastaus #7 : 14.02.2010 - klo:21:39 »
Lainaus
Eli noi ei kirjoita toisten päälle ?
Ei, jos useammassa lähtökansiossa on samanniminen tiedosto, niin vain ensimmäinen kirjoittuu,. Kylläkin jo kohteessa olleen samannimisen päälle, jos siellä sellainen oli.

Poissa jkaija

  • Jäsen
  • Viestejä: 551
  • Sukupuoli: Mies
    • OtaNetti
Vs: Kansioden sisällön kopiointi yhteen kansioon... miten?
« Vastaus #8 : 14.02.2010 - klo:21:40 »
muistithan laittaa tonne komennon loppuun ton \;
no mutta kun se näytti ihan hymiöltä  :D
Koodia: [Valitse]
@linux-poyta:~> find /srv/www/htdocs/zm/events/ -type f -exec cp {} /srv/www/htdocs/koti/images/webcam/cam2/ \;
cp: tavallisen tiedoston ”/srv/www/htdocs/koti/images/webcam/cam2/.directory” luominen ei onnistu: Lupa evätty
cp: tavallisen tiedoston ”/srv/www/htdocs/koti/images/webcam/cam2/.directory” luominen ei onnistu: Lupa evätty
cp: tavallisen tiedoston ”/srv/www/htdocs/koti/images/webcam/cam2/.directory” luominen ei onnistu: Lupa evätty
cp: tavallisen tiedoston ”/srv/www/htdocs/koti/images/webcam/cam2/.directory” luominen ei onnistu: Lupa evätty
pitääpä tarkistaa mitä se nyt teki...
Joo kyllä toimii, kellonajat vaihtuu tiedostoissa. :)

Kiitos.
HP Pavilion15-p076no, Tumbleweed 64bit Plasma
Asus Prime X570P, AMD Ryzen 5 3600, 32GT, GeForce RTX2080, Tumbleweed 64bit Plasma

Poissa jkaija

  • Jäsen
  • Viestejä: 551
  • Sukupuoli: Mies
    • OtaNetti
Vs: Kansioden sisällön kopiointi yhteen kansioon... miten?
« Vastaus #9 : 14.02.2010 - klo:21:45 »
Lainaus
Eli noi ei kirjoita toisten päälle ?
Ei, jos useammassa lähtökansiossa on samanniminen tiedosto, niin vain ensimmäinen kirjoittuu,. Kylläkin jo kohteessa olleen samannimisen päälle, jos siellä sellainen oli.
... no hyvin se kuitenkin toimi vaikka se ilmoitti
Koodia: [Valitse]
cp: ei korvata juuri luotua tiedostoa ”/srv/www/htdocs/koti/images/webcam/cam2/079-capture.jpg” tiedostolla ”/srv/www/htdocs/zm/events/4/174/079-capture.jpg”Tajusin nyt vasta tarkistaa ne tiedoston luonti ajat.  ;)[/s]
eli uudet ei kopioidu vanhojen päälle  :-\
« Viimeksi muokattu: 14.02.2010 - klo:22:00 kirjoittanut jkaija »
HP Pavilion15-p076no, Tumbleweed 64bit Plasma
Asus Prime X570P, AMD Ryzen 5 3600, 32GT, GeForce RTX2080, Tumbleweed 64bit Plasma

guest728

  • Vieras
Kopiointijärjestystä voi säätää sorttaamalla find:in ulostulon. Jos on varma että aakkosjärjestyksessä jälkimmäisessä tiedostossa on haluttu tiedosto, piiputtaa 'sort -r':llä. Jos menee hankalammaksi eli halutaan viimeksi luotu tiedosto, pitää piiputtaa ll:n, sort:in ja awk:in läpi.
Koodia: [Valitse]
~/xDocs/test> find lähde -type f -print
lähde/1/a.txt
lähde/2/b.txt
lähde/3/b.txt
lähde/3/c.txt
~/xDocs/test> cp $(find lähde -type f -print) kohde
cp: will not overwrite just-created `kohde/b.txt' with `lähde/3/b.txt'
~/xDocs/test> cp $(find lähde -type f -print | sort -r) kohde
cp: will not overwrite just-created `kohde/b.txt' with `lähde/2/b.txt'
~/xDocs/test>