tiedostojen siirtäminen Linux voi tuntua suhteellisen yksinkertaista, mutta on olemassa enemmän vaihtoehtoja kuin useimmat ymmärtävät. Tämä artikkeli opettaa aloittelijoille, miten siirtää tiedostoja GUI ja komentoriviltä, mutta myös selittää, mitä todella tapahtuu konepellin alle, ja osoitteet command line vaihtoehtoja, että monet kokemus käyttäjillä on harvoin tutkittu.

Moving what?

ennen siirtämistä liikkuviin tiedostoihin kannattaa katsoa tarkemmin, mitä tiedostojärjestelmän objekteja siirrettäessä oikeasti tapahtuu., Kun tiedosto luodaan, se annetaan inodille, joka on kiinteä piste tiedostojärjestelmässä, jota käytetään tietojen tallentamiseen. Voit mitä inode kartat tiedoston kanssa ls-komennon:

$ ls --inode example.txt
7344977 example.txt

Kun siirrät tiedoston, sinun ei itse tarvitse siirtää tiedot yhdestä inode toiseen, sinun tarvitsee vain määrittää tiedosto-objekti uuden nimen tai tiedoston polku. Itse asiassa tiedosto säilyttää oikeutensa siirrettäessä, koska tiedoston siirtäminen ei muuta tai luo sitä uudelleen.

tiedosto ja Hakemisto inodit eivät koskaan merkitse perintöä, vaan ne sanelee tiedostojärjestelmä itse., Inode-toimeksianto perustuu siihen, milloin tiedosto luotiin, ja se on täysin riippumaton siitä, miten organisoit tietokoneesi. Tiedoston” sisällä ” hakemistolla voi olla alempi inodiluku kuin sen kantahakemistolla, tai korkeampi. Esimerkiksi:

$ mkdir foo
$ mv example.txt foo
$ ls --inode
7476865 foo
$ ls --inode foo
7344977 example.txt

Kun tiedosto siirretään yksi kiintolevy toiseen, kuitenkin inode on hyvin todennäköisesti muuttaa. Tämä tapahtuu, koska uudet tiedot on kirjoitettava uuteen tiedostojärjestelmään. Tästä syystä Linuxissa tiedostojen siirtäminen ja uudelleennimeäminen on kirjaimellisesti sama toimenpide., Onko sinulla siirrä tiedosto toiseen hakemistoon tai kansioon, uusi nimi, sekä toimet suoritetaan samalla taustalla ohjelma.

tässä artikkelissa keskitytään tiedostojen siirtämiseen hakemistosta toiseen.

hiirellä liikkuminen

käyttöliittymä on ystävällistä ja useimmille tuttua abstraktiokerrosta monimutkaisen binääridatan kokoelman päälle. Se on myös ensimmäinen ja intuitiivisin tapa siirtää tiedostoja Linuxissa. Jos olet tottunut työpöytäkokemukseen, yleisessä mielessä, niin luultavasti jo osaat siirtää tiedostoja kiintolevyllä., GNOME desktop, esimerkiksi, oletuksena toimia, kun vetämällä ja pudottamalla tiedoston ikkunasta toiseen on siirtää tiedosto eikä kopioida sitä, joten se on luultavasti yksi kaikkein intuitiivinen toimia työpöydällä:

Dolphin file manager KDE: n Plasma desktop on oletusarvoisesti kehotukset käyttäjän toimia. Pitämällä Shift-näppäintä samalla, kun vedät tiedoston voimia liikkua toiminta:

Liikkuvat command line

shell-komento on tarkoitettu siirtää tiedostoja Linux, BSD, Illumos -, Solaris-ja MacOS on mv., Yksinkertainen komento ennustettavissa syntaksi, mv <lähde> <kohde> liikkuu lähde tiedosto määritettyyn kohde, jokainen määritelty joko absoluuttinen tai suhteellinen-tiedoston polku. Kuten edellä mainittiin, mv on tällainen yhteinen command for POSIX käyttäjille, että monet sen tiedostojen määritteet ovat yleensä tuntematon, joten tässä artikkelissa esitellään muutamia hyödyllisiä määritteet teidän huomiota olitpa uusi tai kokenut.,

kaikki MV-komennot eivät kuitenkaan olleet samojen ihmisten kirjoittamia, joten sinulla saattaa olla käyttöjärjestelmästäsi riippuen GNU mv, BSD mv tai Sun MV. Komento vaihtoehdot eroavat täytäntöönpanon toteuttaminen (BSD mv ei ole pitkän vaihtoehtoja ollenkaan) niin katso mv mies sivua nähdäksesi, mitä on tuettu, tai asenna haluamasi version sijaan (se on ylellisyyttä open source).,

siirrä tiedosto

jos Haluat siirtää tiedosto yhdestä kansiosta toiseen mv, muista syntaksin mv <lähde> <kohde>. Esimerkiksi siirtää tiedosto esimerkki.txt omaan Asiakirjat hakemistoon:

$ touch example.txt
$ mv example.txt ~/Documents
$ ls ~/Documents
example.txt

Aivan kuten silloin, kun siirtää tiedoston vetämällä ja pudottamalla sen päälle kansion kuvaketta, tämä komento ei vaihda Asiakirjoja, joissa on esimerkiksi.txt. Sen sijaan MV havaitsee, että asiakirjat ovat kansio, ja asettaa esimerkin.txt-tiedosto siihen.,

Voit myös kätevästi, voit nimetä tiedoston uudelleen, kun siirrät sitä:

$ touch example.txt
$ mv example.txt ~/Documents/foo.txt
$ ls ~/Documents
foo.txt

Se on tärkeää, koska sen avulla voit nimetä tiedosto, vaikka et halua siirtää sen toiseen paikkaan, kuten niin:

$ touch example.txt$ mv example.txt foo2.txt$ lsfoo2.txt

Liikkuvat hakemisto

mv-komento ei erotella tiedoston hakemistosta, miten cp ei., Voit muuttaa hakemiston tai tiedoston, jolla on sama syntaksi:

$ touch file.txt
$ mkdir foo_directory
$ mv file.txt foo_directory
$ mv foo_directory ~/Documents

tiedoston siirtäminen turvallisesti

Jos haluat kopioida tiedoston hakemistoon, jossa tiedosto on sama nimi on jo olemassa, mv-komento korvaa kohde-tiedoston kanssa yksi olet siirtymässä, oletuksena. Tämä ongelma on nimeltään clobbering, ja joskus se on juuri sitä, mitä aiot tehdä. Muina aikoina se ei ole.

Jotkut jakelut alias (tai voit kirjoittaa oman) mv mv –interactive, joka pyytää vahvistusta. Jotkut eivät., Joko niin, voit käyttää –interactive-tai -en-vaihtoehdon, jolla varmistat, että mv pyytää vahvistusta siinä tapauksessa, että kaksi tiedostoja sama nimi, ovat ristiriidassa:

$ mv --interactive example.txt ~/Documents
mv: overwrite '~/Documents/example.txt'?

Jos et halua manuaalisesti puuttua, käyttö-ei-asu tai -n sijaan. Tämä lippu torjuu äänettömästi move-toiminnan konfliktitilanteessa. Tässä esimerkissä tiedosto nimeltä esimerkki.,txt jo on ~/Dokumentit, joten se ei saa siirtyi nykyisen hakemiston ohjeiden mukaisesti:

$ mv --no-clobber example.txt ~/Documents
$ ls
example.txt

Siirtämällä varmuuskopiot

Jos käytät GNU mv, on varmuuskopiointi vaihtoehtoja tarjoamalla toinen tapa turvallista matkaa. Luoda varmuuskopio tahansa ristiriitaisia kohde tiedosto, käyttää optio-b:

$ mv -b example.txt ~/Documents
$ ls ~/Documents
example.txt example.txt~

Tämä lippu takaa, että mv täydentää siirrä toiminto, mutta myös suojaa mitään ennestään tiedoston määränpään sijainti.,

Toinen GNU varmuuskopiointi vaihtoehto on-varmuuskopio, joka vie argumentti määritellään, miten varmuuskopio tiedoston nimi:

  • nykyisten: Jos numeroituja varmuuskopioita jo olemassa kohde, sitten numeroitu varmuuskopiointi on luotu. Muuten käytetään yksinkertaista järjestelmää.
  • none: ei luo varmuuskopiota, vaikka –backup on asetettu. Tämä vaihtoehto on hyödyllistä ohittaa MV alias, joka asettaa varmuuskopio vaihtoehto.
  • numeroitu: liittää kohdetiedoston numerolla.,
  • yksinkertainen: Liittää kohde-tiedoston kanssa ~, joka voi helposti olla piilossa päivittäistä mieltä –ignore-varmuuskopiot vaihtoehto ls.

esimerkiksi:

oletuksena varmuuskopiointi järjestelmä voidaan asettaa ympäristömuuttujan VERSION_CONTROL. Voit asettaa ympäristömuuttujia ~/.bashrc tiedosto tai dynaamisesti ennen komento:

– varmuuskopiointi vaihtoehto silti kunnioittaa –interactive-tai -en-vaihtoehto, niin silti se kysyy, haluatko korvata kohde-tiedoston, vaikka se luo varmuuskopio ennen kuin teet niin.

Voit ohittaa -i –force tai -f-optiolla.,

–varmuuskopiointivaihtoehtoa ei ole saatavilla BSD mv: ssä.

Siirtämällä useita tiedostoja kerralla

Kun siirrät useita tiedostoja, mv kohtelee lopullinen hakemisto nimetty kohde:

$ mv foo bar baz ~/Documents
$ ls ~/Documents
foo bar baz

Jos lopullinen tuote ei ole hakemisto, mv palauttaa virheilmoituksen:

$ mv foo bar baz
mv: target 'baz' is not a directory

syntaksin GNU mv on melko joustava., Jos et pysty antamaan mv-komento kohde kuin lopullinen argumentti, käytä –target-directory-tai -t-vaihtoehto:

$ mv --target-directory=~/Documents foo bar baz
$ ls ~/Documents
foo bar baz

Tämä on erityisen hyödyllistä, kun rakentaa mv komennot tulosteesta jokin muu komento, kuten etsi-komennolla, xargs, tai GNU Rinnakkain.

Liikkuvat perustuu mtime

GNU mv, voit määrittää, liikkua, toimia sen perusteella, onko tiedosto on siirretty, on uudempi kuin määränpää tiedosto se olisi korvata., Tämä vaihtoehto on mahdollista –update-tai -u vaihtoehto, ja ei ole saatavilla BSD mv:

– Tämä tulos perustuu yksinomaan tiedostoja,’ muutoksen aika, ei diff kaksi tiedostot, joten käytä sitä varoen. Se on helppo huijata mv pelkkä kosketus komento:

Ilmeisesti, tämä ei ole kaikkein älykäs päivitys toiminto käytettävissä, mutta se tarjoaa perustiedot suojan päälle viimeaikaiset tiedot.

muutto

datan siirtämiseen on muitakin keinoja kuin pelkkä MV-komento, mutta oletusohjelmana tehtävään mv on hyvä universaali vaihtoehto., Nyt, että tiedät mitä vaihtoehtoja sinulla on käytettävissä, voit käyttää mv älykkäämpiä kuin koskaan ennen.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *