Tiedostojen siirtäminen

Millä komennolla onnistuu siirtämään tai kopioimaan pelkät tiedostot (ei kansioita ja alikansioita) toiseen kansioon? Tarkoitus olisi siirtää tiedostot yhteen kansioon kuudesta pääkansiosta ja niiden yht. 6000 alikansiosta. Olen tehnyt photorecillä tiedostojen palautuksen ja nyt niiden tiedostojen löytäminen on hankalaa jotka haluan palauttaa, siilä 6000 kansiota on aika työlästä käydä läpi.

Jos siellä ei ole kahta samannimistä eri hakemistoissa, niin tämä varmaan toimii:

[quote=“Tomin, post:2, topic:1344”]Jos siellä ei ole kahta samannimistä eri hakemistoissa, niin tämä varmaan toimii:

Yritin laittaa kansiosta “1000” kansioon “kaikki” siirtymään mutta herjaa, että “mv: tiedoston ”kaikki//” tilaa ei voi lukea: Tiedostoa tai hakemistoa ei ole”.

Kummatkin kansiot ovat siis home hakemistossa. Tuo “1000” kansio sisältää 1000 alikansiota ja tarkoitus olisi saada näiden kansioiden tiedostot samaan kansioon.

Väärin päin eli näin olisi oikein:

-t vivulla määritellään kohdehakemisto.

[quote=“Tomin, post:4, topic:1344”]Väärin päin eli näin olisi oikein:

-t vivulla määritellään kohdehakemisto.[/quote]

Ok. Nyt toimii. Kiitos nopeasta vastauksesta! Tosin herjasi, että “bash: /bin/mv: Argumenttilista on liian pitkä”. Tämä tosin saattaa johtua siitä, että noita tiedostoja on niin tolkuton määrä. Laitoin pienemmässä osassa ja alkoi pelaamaan. Tämä helpottaa nyt suunnattomasti kadonneiden tiedostojen onkimista, sillä pääsen listaamaan suuremman määrän tiedostoja samassa kansiossa ja voin järjestää ne koon mukaan. Ongelmahan tässä on ollut se, että tuo photorec onki tuolta kovalevyn syövereistä myös .thumbnails kansiossa olleet tiedot ja näitä esikuvatiedostoja on aivan tolkuton määrä ja oikeiden kuvien löytäminen ilman tätä konstia olisi aivan liian työläs 6000 kansion hakemistosta.

find hak1 hak2 hak3 hak4 hak5 hak6 -type f | xargs cp -t kohdehakemisto

Eli: etsi kuudesta päähakemistosta hak1…hak6 kaikki tiedostot (ja vain tiedostot),

putkita tiedostonimien lista xargs-ohjelmalle, joka antaa sen argumentiksi cp-ohjelmalle,

joka kopioi ne kohdehakemisto-nimiseen hakemistoon (jonka pitää olla olemassa).

Jos tiedoston nimissä on välilyöntejä, lisää optiot -print0 ja -0:

find hak1 hak2 hak3 hak4 hak5 hak6 -type f -print0 | xargs -0 cp -t kohdehakemisto

[quote=“jem, post:6, topic:1344”]find hak1 hak2 hak3 hak4 hak5 hak6 -type f | xargs cp -t kohdehakemisto

Eli: etsi kuudesta päähakemistosta hak1…hak6 kaikki tiedostot (ja vain tiedostot),

putkita tiedostonimien lista xargs-ohjelmalle, joka antaa sen argumentiksi cp-ohjelmalle,

joka kopioi ne kohdehakemisto-nimiseen hakemistoon (jonka pitää olla olemassa).

Jos tiedoston nimissä on välilyöntejä, lisää optiot -print0 ja -0:

find hak1 hak2 hak3 hak4 hak5 hak6 -type f -print0 | xargs -0 cp -t kohdehakemisto[/quote]

Tuo nimimerkki Tomin mallikin olisi jo kelvannut, mutta tämä sinun loitsu tekee oikeastaan sen mitä tuossa ensimmäisessä viestissä kysyin. Suuri kiitos jälleen kerran :smiley: !