Kirjoittaja Aihe: Piilotiedostojen kopiointi [RATKAISTU]  (Luettu 2519 kertaa)

zezezeze111

  • Käyttäjä
  • Viestejä: 4
    • Profiili
Piilotiedostojen kopiointi [RATKAISTU]
« : 10.11.10 - klo:10.10 »
Terve kaikki,

yritin löytää vastausta kysymykseeni, mutta kun ei onnistanut, aloitan nyt aiheen.

Olen käyttänyt Linuxia melko monta vuotta, ja tuona aikana olen vaihdellut jakelua aika ahkerasti. Useimmiten olen jättänyt kotikansio-osioni alustamatta. No, tässä sitä ollaan, ja ilmeisesti varsinkin Debianin ja vanhojen työpöytäympäristöjen haamut kummittelevat kotikansiostani käsin. En taida aloittaa ongelmieni luettelemista, mutta Debianista Ubuntuun samoin vaihtaneet ovat varmaankin kohdanneet samat vaikeudet.

Ajattelin ratkaista tilanteeni uudella asennuksella, jota ennen kopioisin kaikki piilotiedostoni ulkoiselle kovalevylle, jotta halutessani saan palautettua kustomointeja, asetuksia ja sen sellaista haluamistani ohjelmista. Ennen asennusta poistaisin siis nuo piilotiedostot, ja palauttaisin vain tarvitsemani. En tiedä onko tämä oikea lähestymistapa, mutta koko homen formatointi olisi melkoinen urakka.

Editoin tähän pari juttua terminaalista, kunhan vaihdan konetta (pari minuuttia). Jatkoa seuraa.

Olen käyttänyt komentoa
Koodia: [Valitse]
sudo cp -R .* /home/tapksa /media/568D-71E0/Säilö/Home-varmuuskopiot/piilofilutVastauksena on "cp: cannot create symbolic link `/media/568D-71E0/Säilö/Home-varmuuskopiot/piilofilut-09-11-2010/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/langpack-en-GB@firefox.mozilla.org': Operation not permitted"
jne monta kertaa.

Ensinnäkin komentoni on väärä, se kopioi myös näkyvät tiedostot.

Vinkkiä kellään?
« Viimeksi muokattu: 12.11.10 - klo:17.49 kirjoittanut tapksa »

SuperOscar

  • Käyttäjä
  • Viestejä: 4063
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Piilotiedostojen kopiointi
« Vastaus #1 : 10.11.10 - klo:10.54 »
Olen käyttänyt komentoa
Koodia: [Valitse]
sudo cp -R .* /home/tapksa /media/568D-71E0/Säilö/Home-varmuuskopiot/piilofilut

Ihan ensiksi, tarkoitat varmaan:

Koodia: [Valitse]
cp -R /home/tapksa/.* /media/568D-71E0/Säilö/Home-varmuuskopiot/piilofilut
sudo on tarpeeton, jos sinulla on tarpeelliset oikeudet lähteisiin. cp-komento taas hyväksyy monia lähdeargumentteja, joten yrität itse asiassa kopioida sekä (a) kaikki nykyhakemiston (mikä onkin) piilotiedostot että (b) kotihakemistosi kaikki tiedostot piilofilut-kansioon.

Toinen ongelmasi on se, että ilmeisesti paikka, jonne olet kopioimassa, on FAT/NTFS-levy. Tällöin symbolisia linkkejä ei voi luoda ja joskus nimienkin kanssa tulee kränää.

Suosittelisin tekemään piilotiedostoista ”tarrapallon” eli pakkaamaan ne yhteen tiedostoon, joka sitten on helppo sijoittaa minne haluatkin:

Koodia: [Valitse]
tar --create -vjf /media/568D-71E0/Säilö/Home-varmuuskopiot/piilofilut.tar.bz2 /home/tapksa/.*
(tar käy oletuksena argumenttinsa rekursiivisesti läpi; tai jos tarkkoja ollaan, se kohtelee kansioargumenttia niin, että sen koko sisältö kopioidaan myös.)

Tämä tuli nyt kokeilematta, joten sillä varauksella...
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

zezezeze111

  • Käyttäjä
  • Viestejä: 4
    • Profiili
Vs: Piilotiedostojen kopiointi
« Vastaus #2 : 10.11.10 - klo:19.11 »
Tarball pakkautuu onnistuneesti, tämä oli hyvä idea. Ulkoinen kovalevy on tosiaan NTFS, mistä syystä en mieluusti formatoi homefolderiani (koska siirto sinne säilöön on melkoinen urakka).

Tuo .* -malli on peräisin jostakin ohjeesta, jonka googlasin tätä varten, mutta selvisipä nyt samalla sekin, mitä se tekee.

Kiitos paljon avusta!

EDIT:

Eipäs! Tuokin komento kopioi koko kotikansion (/home/tapksa/./ -periaatteella, esim. /home/tapksa/./Download = /home/tapksa/Download).
« Viimeksi muokattu: 11.11.10 - klo:13.25 kirjoittanut tapksa »

SuperOscar

  • Käyttäjä
  • Viestejä: 4063
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Piilotiedostojen kopiointi
« Vastaus #3 : 10.11.10 - klo:21.01 »
Eipäs! Tuokin komento kopioi koko kotikansion (/home/tapksa/./ -periaatteella, esim. /home/tapksa/./Download = /home/tapksa/Download).

Äh, niinpä tietysti. Äkkiseltään en osaa ehdottaa kuin:

Koodia: [Valitse]
ls -d /home/tapksa/.* | xargs tar --create -vjf blaablaablaa.tar.bz2
Tuossa siis ls-komennolla tuotetaan tiedostolista, jossa on taatusti vain pistealkuiset nimet hakemistosta /home/tapksa, ja välitetään se xargs-komennon avulla tarrille argumentiksi.
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

zezezeze111

  • Käyttäjä
  • Viestejä: 4
    • Profiili
Vs: Piilotiedostojen kopiointi
« Vastaus #4 : 11.11.10 - klo:13.20 »
Kopio silti kaikki. Ideoita? Saisiko tuon tar-komennon jättämään pakkaamatta kansiot, joissa on vaikkapa merkkijono "zzz"?

Mitenkähän muuten saan nuo sitten poistettua uutta asennusta varten?
« Viimeksi muokattu: 11.11.10 - klo:13.27 kirjoittanut tapksa »

SuperOscar

  • Käyttäjä
  • Viestejä: 4063
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Piilotiedostojen kopiointi
« Vastaus #5 : 11.11.10 - klo:13.28 »
Kopio silti kaikki. Ideoita?

Ohoo... Bash onkin näin tyhmä (anteeksi vain): Zsh, jota itse käytän, osaa olla luettelematta nimiä . ja .. eli nykyinen ja emohakemisto.

No, menee luultavasti kikkailuksi, mutta kokeilepa:

Koodia: [Valitse]
ls -d /home/tapksa/.[!.]* | xargs ...
(xargs-komennosta eteenpäin siis ennallaan.) Tuo kryptinen ”.[!.]*” tarkoittaa ’nimet, jotka alkavat pisteellä ja joita seuraa mikä muu merkki hyvänsä paitsi piste’ (huutomerkki ! osoittaa negaatiota).

Jos jollakulla on esittää vähemmän kryptinen vaihtoehto...!
« Viimeksi muokattu: 11.11.10 - klo:13.29 kirjoittanut SuperOscar »
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: Piilotiedostojen kopiointi
« Vastaus #6 : 11.11.10 - klo:17.10 »
Vink, vink! ::)
Koodia: [Valitse]
man tar
Ja sitten kotihakemistossa vaikka näin ;)
Koodia: [Valitse]
touch ei_näitä
ls >ei_näitä
tar cvf piilotiedostot.tar -X ei_näitä .

Tai sitten...
Koodia: [Valitse]
man bashja...
Koodia: [Valitse]
export GLOBIGNORE=.
tar cvf piilotiedostot.tar .*
Tämä viimemainittu on kyllä käytännössä huomattavasti haastavampi tuosta man bash johtuen. ;D
« Viimeksi muokattu: 11.11.10 - klo:17.22 kirjoittanut retu »

SuperOscar

  • Käyttäjä
  • Viestejä: 4063
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Piilotiedostojen kopiointi
« Vastaus #7 : 11.11.10 - klo:18.11 »
Vink, vink! ::)
Koodia: [Valitse]
man tar

Amatööri! Vain nössöt lukevat manuaaleja! ::)

Tuli muuten mieleen:

Koodia: [Valitse]
tar --create -vjf /polku/sinne/jonnekin/piilofilut.tar.bz2 /home/tapksa/.[!.]*
...toiminee yhtä hyvin: turha tässä on xargsilla leikkiä.

Zsh:ssa joutunee huutomerkin suojaamaan (”.[\!.]*”).
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

zezezeze111

  • Käyttäjä
  • Viestejä: 4
    • Profiili
Vs: Piilotiedostojen kopiointi
« Vastaus #8 : 12.11.10 - klo:12.40 »
No heh, eihän tämäkään ongelma niin vaikea olisi ollut, jos olisi a) lukenut manuaaleja b) miettinyt ja tutkinut vähän itse. .[!.]* toimi oikein hyvin, tarball on tallessa. Nyt toivon vain, että saan ensinnäkin poistettua noita vanhentuneita tiedostoja ja toisinnakin palautettua sitten tarvitsemiani tarballista. Merkkaan langan kuitenkin jo nyt ratkaistuksi.

Kiitos avusta ja ideoista!

EDIT: kaikki näyttäisi toimivan oikein hyvin!
« Viimeksi muokattu: 12.11.10 - klo:16.55 kirjoittanut tapksa »