Mikä on oikea tapa kopioida kokonainen hakemistopuu linuxissa?
Katsoin ensin ohjeita täältä:
https://phoenixnap.com/kb/how-to-copy-files-directories-linux
selvisi, että linuxissa on ilmeisesti syytä antaa cp -komennolle optioita, jotta se toimisi oikein ja halutulla tavalla:
siis esim:
cp -Rp /source/* /dest/
Riittääkö edes tuo, vai vieläkö unohtui jo(i)takin tarpeellisia optioita ?
Tuossahan:
-R tekee kopioinnista rekursiivisen, eli mukaan tulevat myös alihakemistot kukin omine alihakemistoineen rekursiivisesti.
-p pitää huolta siitä, että tiedoston sisällön lisäksi kopioidaan myös metatiedot, kuten tiedoston luonti- ja muokkausaikaleimat.
Mutta:
kopioiko tuo myös ns. piilotiedostot (linuxissahan jos tiedostonimi alkaa pisteellä niin pelkkä ls -l * ei näytä ko. tiedostoja lainkaan) ?
Ja jos ei, mitä lisäoptioita vielä pitäisi antaa cp -komennolle ?
Tarkoitus olisi siis tehdä ns. "varmuuskopiotasoinen" kopio, eli että jos kopiointikomento ei anna virheilmoitusta, niin alkuperäiset tiedostot ja hakemistot voi kopioinnin jälkeen poistaa ilman, että mitään tietoa menetetään.
Eli riittääkö tuo cp -Rp /source/* /dest/ -komento, ja jos ei riitä, mitä lisäoptioita tuo vielä mahdollisesti tarvitsee ?
Katsoin ensin ohjeita täältä:
https://phoenixnap.com/kb/how-to-copy-files-directories-linux
selvisi, että linuxissa on ilmeisesti syytä antaa cp -komennolle optioita, jotta se toimisi oikein ja halutulla tavalla:
siis esim:
cp -Rp /source/* /dest/
Riittääkö edes tuo, vai vieläkö unohtui jo(i)takin tarpeellisia optioita ?
Tuossahan:
-R tekee kopioinnista rekursiivisen, eli mukaan tulevat myös alihakemistot kukin omine alihakemistoineen rekursiivisesti.
-p pitää huolta siitä, että tiedoston sisällön lisäksi kopioidaan myös metatiedot, kuten tiedoston luonti- ja muokkausaikaleimat.
Mutta:
kopioiko tuo myös ns. piilotiedostot (linuxissahan jos tiedostonimi alkaa pisteellä niin pelkkä ls -l * ei näytä ko. tiedostoja lainkaan) ?
Ja jos ei, mitä lisäoptioita vielä pitäisi antaa cp -komennolle ?
Tarkoitus olisi siis tehdä ns. "varmuuskopiotasoinen" kopio, eli että jos kopiointikomento ei anna virheilmoitusta, niin alkuperäiset tiedostot ja hakemistot voi kopioinnin jälkeen poistaa ilman, että mitään tietoa menetetään.
Eli riittääkö tuo cp -Rp /source/* /dest/ -komento, ja jos ei riitä, mitä lisäoptioita tuo vielä mahdollisesti tarvitsee ?
Vastaukset 11
Vanhimmat
cp -r -u --preserve=all --backup Kuvat/ ~/backup
Tämä on lähes sama mutta lyhyempi: "cp -abu Kuvat/ ~/backup".
Sinulta puuttui tuosta "--no-dereference" joka sisältyy "-a":han.
ps. En kyllä suosittele varmuuskopiointia cp:lla
Miksi symboliset linkit pitäisi jättää pois, avauksessa haluttiin backup kelpoinen kopiointi.
Tota noin, kai aloittaja tietää, että jos klikkaa sitä kansiota ja valitsee että kopioi, sitten liittää mihin tahansa, niin koko kansio kopioidaan rekursiivisesti piilotiedostoineen?
Sitten ymmärrän, jos nyt välttämättä on pakko tehdä komentoriviltä.
Toimii kyllä mutta ensin pitää tiedostonhallinnassa laittaa piilotiedostot näkyviin!
Testasin tätä Cinnamonissa, Nemo 4.8.6, loin uuden kansion, lisäsin pari piilotiedostoa, kopioin kansion ja kyllä ne piilotiedostot siirtyivät, vaikka olivat asetuksista piilotettuna. Tiedä sitten mitä tiedostoselainta aloittaja käyttää?
Kokeilin caja:lla Ubuntu Mate:ssa ja copy/paste kansiolle kopioi kaiken uuteen hakemistoon.
Komentoriviltä se onkin sitten eri:
Jos haluaa kopioida kaiken -a parametri auttaa
$ cp -a src/ dest/
-ilmestyy dest/src kansio, joka on identtinen alkuperäisen kanssa lukuunottamatta sitä, että tiedoston archive-bitti kääntyy.
Jos haluaa kopioida pelkästään piilotiedostot:
$ cp src/.* dest/
-koska nyt valinta kohdistuu tiedostoihin eikä hakemistoon, kopiot löytyy dest-kansiosta
Jos haluaa kopioida kaiken paitsi piilotiedostot:
$ cp src/* dest/
-valitsee tiedostot, jotka eivät ala pisteellä src-kansiosta. hakemistoja ei kopioida koska ne eivät ole tiedostoja: Tätä varten tarvitaan -R parametria kuten yllä on jo näytetty.
Jos komentorivistä tykkää, niin cp:n lisäksi kannattaa tutustua myös rsync-ohjelmaan, sillä voi tehdä paljon muutakin kuin backup-tiedostoja.
Näin on! Hiirellä kopio/liitä. Näppäimillä ctrl c/ctrl v.
Näin on! Joku pöljä avaaja taas haluu tehdä asioita vaikeesti!
Ubuntua käytettäessä, voi tehdä asiat noin yksinkertaisesti, minkään muun jakelun käyttöön en tätä ohjetta suosittele se ei tee sitä mitä nämä kaksi ubuntun kahelia kuvittelevat tapahtuvan.
Huh mitä sudottelia tubuttimessa.