Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Asentaminen ja käyttöönotto => Aiheen aloitti: igor_2 - 24.05.07 - klo:23.24
-
Miten voin kopioida tiedostot hakemistopuusta yhteen hakemistoon?
Olen käyttänyt komentoa
cp -r /home/jaetut/kuvat ./
ja sillä toki saa kuvat-hakemiston alihakemistoineen työhakemistoon, mutta haluaisin että kuvat tulevat "puusta" yhteen ja samaan hakemistoon (eli ./:ään).
Tuntuu, että cp:stä ei tämmöstä "rekursiota purkavaa" vipua löydy, taikka sitten olen vain sokea...
-
Miten voin kopioida tiedostot hakemistopuusta yhteen hakemistoon?
Olen käyttänyt komentoa
cp -r /home/jaetut/kuvat ./
ja sillä toki saa kuvat-hakemiston alihakemistoineen työhakemistoon, mutta haluaisin että kuvat tulevat "puusta" yhteen ja samaan hakemistoon (eli ./:ään).
Tuntuu, että cp:stä ei tämmöstä "rekursiota purkavaa" vipua löydy, taikka sitten olen vain sokea...
for i in `find /etc/ -type f`; do echo $i; cp $i "/tmp/test/`basename $i`"; done
Tuo kopio rekursiivisesti kaikki tiedostot /etc/ -> /tmp/test/
Siitä varmaankin osaat soveltaa omaan tarktoukseen?
Ehkäpä joku tehokkaampi tapa on olemassa, muut kertokoon sen :)
-
Ehkäpä joku tehokkaampi tapa on olemassa, muut kertokoon sen :)
ei tämä varmaan sen tehokkaampi ole, mutta äkkiseltään tuntuisi, että tuon pystyisi hoitamaan 'yhdelläkin' komennolla:
find /etc/ -type f -exec cp '{}' /tmp/test/ \;
voipi mennä pieleenkin, nyt ei ajatus oikein kulje.
-
Ei mennyt pieleen Jannen ajatukset. Toimii.
Kiitos molemmille!
-
Mitenkäs jos haluan kopioida pelkät jpg-kuvat jostain hakemistosta säilyttäen niiden omat hakemistorakenteet ja ei kopioiden nef-kuvia?
Eli hakemistorakenne on seuraavanlainen:
kuvathakemisto (dvd)
|
|-hakemisto1
| L jpgkuvat
| nefkuviahakemisto1ssä
|
|-hakemisto2
| L jpgkuvat
| nefkuviahakemisto2ssa
Tuolta kopioitaisiin jpgeet, niin että tulos olisi:
jokuhakemisto
|
|-hakemisto1
| L jpgkuvat
|
|-hakemisto2
| L jpgkuvat
Toivottavasti ymmärsitte.
Muokattu hakemistorakennetta, jonka muistin hieman väärin.
-
ei tämä varmaan sen tehokkaampi ole, mutta äkkiseltään tuntuisi, että tuon pystyisi hoitamaan 'yhdelläkin' komennolla:
find /etc/ -type f -exec cp '{}' /tmp/test/ \;
Tuosta findin -exec’istä kun niin varoitellaan, sama xargsia käyttäen mennee näin:
find /etc -type f | xargs -I '{}' echo cp '{}' /tmp/test
Mitenkäs jos haluan kopioida pelkät jpg-kuvat jostain hakemistosta säilyttäen niiden omat hakemistorakenteet ja ei kopioiden nef-kuvia?
Huh... Curiouser and curiouser... Pääsin aika lähelle tämmöisellä häkkyrällä:
find alkup_hakemisto -name \*.jpg | xargs -I '{}' cp --parents '{}' uusi_hakemisto
Tuo kopioi kyllä vain *.jpg-tiedostot ja säilyttää hakemistorakenteen, mutta (a) edellyttää, että uusi_hakemisto on valmiiksi olemassa, (b) kopioi hakemistorakenteen kokonaisuudessaan uusi_hakemisto-hakemiston alle. Siis:
uusi_hakemisto
+ alkup_hakemisto
+ alkup_hakemiston alla oleva rakenne
Joku muu saa jatkaa tästä :)