Articles

työskentely tiedostojen ja hakemistojen kanssa

yleiskatsaus

opetus: 30 min
harjoitukset: 20 min
kysymykset

  • Miten voin luoda, kopioida ja poistaa tiedostoja ja hakemistoja?

  • Miten voin muokata tiedostoja?

tavoitteet

  • luo hakemistohierarkia, joka vastaa annettua diagrammia.

  • luo tiedostoja tähän hierarkiaan muokkaimella tai kopioimalla ja nimeämällä olemassa olevia tiedostoja uudelleen.

  • Poista, Kopioi ja siirrä määriteltyjä tiedostoja ja / tai kansioita.

hakemistojen luominen

osaamme nyt tutkia tiedostoja ja hakemistoja,mutta miten ne ylipäätään luodaan?

Vaihe yksi: katso, missä olemme ja mitä meillä jo on

palataan data-shell Hakemisto työpöydällä ja käytetään ls -F nähdäksesi, mitä se sisältää:

$ pwd
/Users/nelle/Desktop/data-shell
$ ls -F
creatures/ data/ molecules/ north-pacific-gyre/ notes.txt pizza.cfg solar.pdf writing/

Luo hakemisto

luodaan uusi hakemisto thesis käyttäen komentoa mkdir thesis(jolla ei ole tulostetta):

$ mkdir thesis

kuten sen nimestä voisi arvata,mkdir tarkoittaa ”merkkihakemistoa”.Koska thesis on suhteellinen polku(ts., ei ole johtoviivaa, kuten /what/ever/thesis),uusi hakemisto luodaan nykyiseen työhakemistoon:

$ ls -F
creatures/ data/ molecules/ north-pacific-gyre/ notes.txt pizza.cfg solar.pdf thesis/ writing/

koska olemme juuri luoneet thesisHakemisto, siinä ei ole vielä mitään:

$ ls -F thesis

huomaa, ettämkdirei ole rajoitettu yksittäisten hakemistojen luomiseen yksi kerrallaan. -p – valitsimen avulla mkdir voi luoda hakemiston, jossa on mikä tahansa määrä sisäkkäisiä alikansioita yhdessä operaatiossa:

$ mkdir -p thesis/chapter_1/section_1/subsection_1

The -Rvalintalskomento listaa kaikki sisäkkäiset alikansiot hakemistossa. Käytetään ls -FR listaa rekursiivisesti juuri luomamme Uusi hakemistohierarkia thesis Hakemisto:

$ ls -FR thesischapter_1/thesis/chapter_1:section_1/thesis/chapter_1/section_1:subsection_1/thesis/chapter_1/section_1/subsection_1:

kaksi tapaa tehdä sama asia

komentotulkin käyttäminen hakemiston luomiseen ei eroa Tiedostonhallintaohjelman käytöstä.Jos avaat nykyisen hakemiston käyttöjärjestelmäsi graafisella tiedostonhallintaohjelmalla,

thesis

– Hakemisto näkyy sielläkin.Vaikka komentotulkki ja File explorer ovat kaksi eri tapaa vuorovaikutuksessa tiedostojen kanssa,itse tiedostot ja hakemistot ovat samat.

tiedostojen ja hakemistojen hyvät nimet

tiedostojen ja hakemistojen monimutkaiset nimet voivat tehdä elämästäsi tuskallisen, kun työskentelet komentorivillä. Täällä tarjoamme muutamia hyödyllisiä vinkkejä nimet tiedostoja.

  1. älä käytä välilyöntejä.

    välilyönnit voivat tehdä nimestä mielekkäämmän,mutta koska välilyöntejä käytetään argumenttien erottamiseen komentolinjalla on parempi välttää niitä tiedostojen ja kansioiden nimissä.- tai _ sen sijaan (esim. north-pacific-gyre/ eikä north pacific gyre/).

  2. älä aloita nimeä - (dash).

    komennot käsittelevät - alkavia nimiä vaihtoehtoina.

  3. tikku kirjaimilla, numeroilla, .(period tai”full stop”),-(dash) ja_(alaviiva).

    monilla muilla merkeillä on komentorivillä erityisiä merkityksiä.Saamme tietää joistakin niistä tämän oppitunnin aikana.On erikoismerkkejä, jotka voivat aiheuttaa komento ei toimi odotetusti ja voi jopa johtaa tietojen menetykseen.

Jos haluat viitata sellaisten tiedostojen tai hakemistojen nimiin, joissa on välilyöntejä tai muita erikoismerkkejä, kannattaa nimi ympäröidä lainausmerkeillä ("").

luo tekstitiedosto

muutetaan työhakemistomme muotoon thesis käyttäen cd,ajetaan sitten tekstieditori nimeltä Nano luodaksesi tiedoston nimeltä draft.txt:

$ cd thesis$ nano draft.txt

mikä editori?

kun sanomme,”nano on tekstieditori”, me todella tarkoitamme ”tekstiä”: se voi toimia vain pelkillä merkistötiedoilla, ei taulukoilla, kuvilla tai millään muulla ihmisystävällisellä medialla. Käytämme sitä esimerkeissä, koska se on yksi viimeisistä monimutkaisista tekstieditoreista. Kuitenkin, koska tämä ominaisuus, se ei ehkä ole tarpeeksi voimakas tai joustava tarpeeksi työtä sinun täytyy tehdä tämän työpajan jälkeen. Unix-järjestelmissä (kuten Linux ja macOS) monet ohjelmoijat käyttävät Emacs orvimia (jotka molemmat vaativat enemmän aikaa oppimiseen) tai graafista editoria kuten geditiä. Windows, saatat haluta touse Notepad++. Windowsissa on myös sisäänrakennettu muokkain nimeltään notepad, joka voidaan ajaa komentoriviltä samalla tavalla kuin nano tätä oppituntia varten.

riippumatta siitä, mitä editoria käytät, sinun on tiedettävä, mistä se etsii ja tallentaa tiedostoja. Jos käynnistät sen komentotulkilta, se käyttää (luultavasti)nykyistä työhakemistoasi oletussijainninaan. Jos käytät tietokoneesi Käynnistä-valikkoa, se saattaa sen sijaan haluta tallentaa tiedostoja työpöytäsi ordocuments-hakemistoon. Voit muuttaa tätä navigoimalla toiseen hakemistoon ensimmäistä kertaa kun ’Tallenna nimellä …’

kirjoitetaan muutama rivi tekstiä.Kun olemme tyytyväisiä tekstiimme, voimme painaa Ctrl + O(paina Ctrl-tai ohjausnäppäintä ja samalla painaa O-näppäintä) kirjoittaaksemme tietomme levylle (meiltä kysytään, mihin tiedostoon haluamme tallentaa tämän:paina Return hyväksyäksemme draft.txt).

kuvakaappaus Nano-tekstieditorista toiminnassa

kun tiedostomme on tallennettu, Voimme käyttää Ctrl+X: ää poistuaksemme muokkaimesta ja palataksemme komentotulkille.

ohjaus, Ctrl tai ^ – näppäin

ohjausnäppäintä kutsutaan myös ”Ctrl” – näppäimeksi. Ohjausavaimen käyttö voidaan kuvata eri tavoin. Voit esimerkiksi nähdä ohjeen painaa ohjausnäppäintä ja, kun pidät sitä alhaalla, paina X-näppäintä, jota kuvataan millä tahansa:

    Control-XControl+XCtrl-X Ctrl+X

  • ^X
  • C-x

nano, ruudun alaosassa näkyy^G Get Help ^O WriteOut.Tämä tarkoittaa, että voit käyttää Control-G saadaksesi apua ja Control-O tallentaaksesi tiedostosi.

nano ei jätä näytölle ulostuloa sen poistuttua,mutta ls nyt näyttää, että olemme luoneet tiedoston nimeltä draft.txt:

$ ls
draft.txt

tiedostojen luominen eri tavalla

olemme nähneet, miten tekstitiedostoja luodaan käyttämällänanoeditori.Kokeile nyt seuraavaa komentoa:

$ touch my_file.txt

  1. Mitä touch komento teki?Kun katsot nykyistä hakemistoasi GUI File explorer-ohjelman avulla, näkyykö tiedosto?

  2. käytä ls -l tiedostojen tarkastamiseen. Kuinka suuri on my_file.txt?

  3. milloin haluat luoda tiedoston näin?

ratkaisu

    touchkomento luo uuden tiedostonmy_file.txtnykyisessä hakemistossa. Voit tarkkailla tätä uutta tiedostoa kirjoittamalla ls komentorivikehotteeseen. my_file.txt voi katsoa myös yougui file Explorerissa.

  1. kun tarkastat tiedostoa ls -l, huomaa, ettämy_file.txt koko on 0 tavua. Toisin sanoen se ei sisällä tietoja.Jos avaat my_file.txt tekstieditorilla, se on tyhjä.

  2. jotkin ohjelmat eivät itse luo tulostustiedostoja, muttainstead edellyttää, että tyhjät tiedostot on jo luotu.Kun ohjelma ajetaan, se etsii olemassa olevaa tiedostoa kansoittamaan sen ulostulo. Touch-komennon avulla voit tehokkaasti luoda tyhjän tekstitiedoston, jota tällaiset ohjelmat voivat käyttää.

mikä nimi?

olet ehkä huomannut, että kaikki Nellen tiedostot on nimetty”something dotsomethingiksi”, ja tässä oppitunnin osassa käytimme aina laajennusta.txt. Tämä on vain konventio: voimme kutsua tiedostoa mythesis tai lähes mitä tahansa muuta haluamme. Kuitenkin, useimmat ihmiset käyttävät kaksiosaisia nimiäenemmän aikaa auttaa heitä (ja niiden ohjelmat) kertoa eri kindsof tiedostoja toisistaan. Tällaisen nimen toinen osa on nimeltään filename extension, ja se ilmaisee mitä tietoja tiedostossa on: .txt viestii pelkkää tekstitiedostoa, .pdfilmaisee PDF-dokumentin, .cfg on konfiguraatiotiedosto täynnä parametreja jollekin ohjelmalle tai muulle, .png on PNG-kuva, ja niin edelleen.

Tämä on vain yleissopimus, vaikkakin tärkeä sellainen. Tiedostot sisältävät tavuja: meidän ja ohjelmiemme tehtävänä on tulkita näitä bytesaccording the rules for plain text files, PDF-dokumentit, konfigurointitiedostot, kuvat, ja niin edelleen.

valaan PNG-kuvan nimeäminen nimellä whale.mp3 ei jollain tavalla muuta sitä valaslaulun tallenteeksi, vaikka se saattaa aiheuttaa käyttöjärjestelmän yrittää avata sen musiikkisoittimella, kun joku kaksoisnapsauttaa sitä.

liikkuvat tiedostot ja hakemistot

paluu data-shell

cd ~/Desktop/data-shell/

meidänthesisHakemisto meillä on tiedosto draft.txt joka ei ole erityisen informatiivinen nimi, joten muutetaan tiedoston nimi käyttämällä mv, joka on lyhenne sanoista”Move”:

$ mv thesis/draft.txt thesis/quotes.txt

ensimmäinen argumentti kertoomv mitä me ’liikumme’, kun taas toinen on se,mihin sen on mentävä.Tällöin siirrytään thesis/draft.txtthesis/quotes.txt,mikä vaikuttaa samalla tavalla kuin tiedoston nimeäminen uudelleen.Tokils osoittaa, että thesis sisältää nyt yhden tiedoston nimeltä quotes.txt:

$ ls thesis

div>

quotes.txt

kohdetiedoston nimen määrittämisessä on oltava tarkkana, sillä mv korvaa helposti minkä tahansa olemassa olevan samannimisen tiedoston, joka voi johtaa tietojen häviämiseen. Lisäoptiolla, mv -i (tai mv --interactive),voi tehdä mv pyytää vahvistusta ennen päällekirjoitusta.

huomaa, että mv toimii myös hakemistoissa.

siirrytään quotes.txt nykyiseen työhakemistoon.Käytämme mv jälleen,mutta tällä kertaa käytämme vain hakemiston nimeä toisena argumenttina kertoaksemme mv, että haluamme pitää tiedostonimen, mutta laittaa tiedoston jonnekin uuteen.(Tämän vuoksi komentoa kutsutaan nimellä ”move”.)Tässä tapauksessa käyttämämme hakemistonimi on aiemmin mainitsemamme erityinen hakemistonimi ..

$ mv thesis/quotes.txt .

vaikutus on siirtää tiedosto hakemistosta, jossa se oli, nykyiseen työhakemistoon.lsnyt näyttää, ettäthesison tyhjä:

$ ls thesis

edelleen,ls tiedostonimi tai hakemiston nimi argumenttina luettelee vain kyseisen tiedoston tai kansion.Tästä voidaan nähdä,että quotes.txt on edelleen nykyisessä hakemistossamme:

$ ls quotes.txt
quotes.txt

siirtämällä tiedostoja uuteen kansioon

suoritettuaan seuraavat komennot Jamie tajuaa laittaneensa tiedostotsucrose.datja maltose.datväärään kansioon. Tiedostot olisi pitänyt sijoittaa raw – kansioon.

$ ls -F analyzed/ raw/$ ls -F analyzedfructose.dat glucose.dat maltose.dat sucrose.dat$ cd analyzed

Täytä tyhjät kohdat siirtääksesi nämä tiedostot raw/ kansioon(eli siihen, johon hän unohti ne laittaa)

$ mv sucrose.dat maltose.dat ____/____

ratkaisu

$ mv sucrose.dat maltose.dat ../raw

muistuttaa, että .. viittaa kantahakemistoon (eli yhteen nykyisen hakemiston yläpuolella)ja että .viittaa nykyiseen hakemistoon.

tiedostojen ja hakemistojen kopiointi

cp komento toimii hyvin pitkälti samoin kuin mv,paitsi että se kopioi tiedoston siirtämisen sijaan.Voimme tarkistaa, että se teki oikein käyttämällä lskahdella polulla argumentteina — kuten useimmilla Unix-komennoilla,ls voidaan antaa useita polkuja kerralla:

$ cp quotes.txt thesis/quotations.txt$ ls quotes.txt thesis/quotations.txt
quotes.txt thesis/quotations.txt

voimme myös kopioida hakemiston ja sen kaiken sisällön käyttämällä therecursive-vaihtoehtoa -r,esim. hakemiston varmuuskopioimiseksi:

$ cp -r thesis thesis_backup

tuloksen voi tarkistaa listaamalla sekäthesisettäthesis_backup hakemiston sisältö:

$ ls thesis thesis_backup
thesis:quotations.txtthesis_backup:quotations.txt

Tiedostojen uudelleennimeäminen

Oletetaan, että olet luonut tekstitiedosto nykyisessä hakemistossasi, joka sisältää luettelon tilastollisista testeistä, jotka sinun on tehtävä tietojesi analysoimiseksi, ja nimesi sen: statstics.txt

tämän tiedoston luomisen ja tallentamisen jälkeen huomaat kirjoittaneesi tiedoston nimen väärin! Haluat korjata virheen, mitä seuraavista komennoista voit käyttää tehdä niin?

    cp statstics.txt statistics.txtmv statstics.txt statistics.txtmv statstics.txt . cp statstics.txt . /ol>

    ratkaisu

    1. ei. Vaikka tämä luo tiedoston oikealla nimellä, virheellisesti nimetty tiedosto on edelleen olemassa Directoryssa ja se on poistettava.
    2. Kyllä, tämä toimisi tiedoston uudelleennimeämiseksi.
    3. ei, kausi(.) osoittaa, minne tiedosto siirretään, mutta ei anna uutta tiedostonimeä; identtistä tiedostonimeä ei voida luoda.
    4. ei, kausi(.) osoittaa, missä tiedosto kopioidaan, mutta ei anna uutta tiedostonimeä; identtistä tiedostonimeä ei voida luoda.

liikkuvat ja kopioivat

mikä on lopetuksen ulostulo ls komento alla olevassa järjestyksessä?

$ pwd
/Users/jamie/data
$ ls
proteins.dat
$ mkdir recombined$ mv proteins.dat recombined/$ cp recombined/proteins.dat ../proteins-saved.dat$ ls
  1. proteins-saved.dat recombined
  2. recombined
  3. proteins.dat recombined
  4. proteins-saved.dat

Solution

We start in the /Users/jamie/data directory, and create a new folder called recombined.Toinen rivi siirtää (mv) tiedoston proteins.dat uuteen kansioon (recombined).Kolmas rivi kopioi juuri siirtämämme tiedoston. Hankalinta tässä on se, mihin tiedosto siirrettiin. Muistathan, että .. tarkoittaa ’tason nousua’, joten kopioitu tiedosto on nyt /Users/jamie.Huomaa, että .. tulkitaan suhteessa nykyiseen työhakemistoon, ei suhteessa kopioitavan tiedoston sijaintiin.Joten, ainoa asia, joka näyttää käyttäen ls (in /Users/jamie/data) on rekombinoitu kansio.

  1. ei, katso selitys yllä. proteins-saved.dat sijaitsee osoitteessa /Users/jamie
  2. Kyllä
  3. ei, katso selitys yllä. proteins.dat sijaitsee osoitteessa /Users/jamie/data/recombined
  4. ei, katso selitys yllä. proteins-saved.dat sijaitsee osoitteessa /Users/jamie

tiedostojen ja hakemistojen poistaminen

paluudata-shellHakemisto,siistitään tämä hakemisto poistamalla quotes.txt luomamme tiedosto.Tähän käytettävä Unix-komento on rm (lyhenne sanoista ”remove”):

$ rm quotes.txt

voimme vahvistaa, että tiedosto on mennyt käyttäen ls:

$ ls quotes.txt
ls: cannot access 'quotes.txt': No such file or directory

Deleting Is Forever

the Unix Shellillä ei ole roskakoria, josta voimme palauttaa poistetut tiedostot (vaikka useimmat graafiset käyttöliittymät Unixiin eivät). Sen sijaan, kun poistamme tiedostoja, ne ovat linkittämättömiä tiedostojärjestelmästä, jotta niiden tallennustila levyllä voidaan kierrättää. Työkalut löytää ja löytää poistetut tiedostot ovat olemassa, mutta ei ole mitään takeita he ’ willwork missään tilanteessa, koska tietokone voi kierrättää tiedoston levytilaa heti.

käyttäen rm: ää turvallisesti

Mitä tapahtuu, kun suoritamme rm -i thesis_backup/quotations.txt?Miksi haluamme tämän suojan käytettäessä rm?

ratkaisu

$ rm: remove regular file 'thesis_backup/quotations.txt'? y

-ivaihtoehto kysyy ennen (jokaista) poistoa (käytä Y: tä poiston vahvistamiseen tai N: ää tiedoston säilyttämiseen).Unix-komentotulkilla ei ole roskakoria, joten kaikki poistetut tiedostot katoavat forever.By käyttämällä -i – valintaa voimme tarkistaa, että poistamme vain ne tiedostot, jotka haluamme poistaa.

Jos yritämme poistaa thesis hakemistoa käyttäen rm thesis,saamme virheilmoituksen:

$ rm thesis
rm: cannot remove `thesis': Is a directory

tämä tapahtuu, koskarmoletuksena toimii vain tiedostoissa, ei hakemistoissa.

rm voi poistaa hakemiston ja kaiken sen sisällön, jos käytämme käännösvaihtoehtoa -r, ja se tekee sen ilman vahvistuskutsuja:

$ rm -r thesis

koska poistettuja tiedostoja ei voi hakea komentotulkin avulla,rm -r tulee käyttää erittäin varovaisesti (voi harkita interaktiivisen vaihtoehdon lisäämistä rm -r -i).

operaatiot, joissa on useita tiedostoja ja kansioita

usein täytyy kopioida tai siirtää useita tiedostoja kerralla. Tämä voidaan tehdä antamalla luettelo yksittäisistä tiedostonimistä tai määrittelemällä nimeämiskuvio yleismerkkien avulla.

Kopioi usealla tiedostonimellä

tätä harjoitusta varten voit testata komennot data-shell/data hakemistossa.

alla olevassa esimerkissä, mitä cp tekee, kun sille annetaan useita tiedostonimiä ja hakemiston nimi?

$ mkdir backup$ cp amino-acids.txt animals.txt backup/

alla olevassa esimerkissä, mitä cptekee, kun sille annetaan kolme tai useampia tiedostonimiä?

$ ls -F
amino-acids.txt animals.txt backup/ elements/ morse.txt pdb/ planets.txt salmon.txt sunspot.txt
$ cp amino-acids.txt animals.txt morse.txt

ratkaisu

Jos annetaan useampi kuin yksi tiedostonimi, jota seuraa hakemiston nimi (eli kohdehakemiston on oltava viimeinen argumentti),cpkopioi tiedostot nimettyyn hakemistoon.

Jos annetaan kolme tiedostonimeä, cp heittää alla olevan kaltaisen virheen, koska se odottaa johtonimeä viimeiseksi argumentiksi.

cp: target ‘morse.txt’ is not a directory

Using wildcards for accessing multiple files at once

Wildcards

* is a wildcard, which matches zero or more characters.Let’s consider the data-shell/molecules directory:*.pdb matches ethane.pdbpropane.pdb, and everyfile that ends with ‘.pdb’. Toisaalta p*.pdb vastaa vainpentane.pdb ja propane.pdb, koska etupuolella oleva ” p ”tarkoittaa tiedostonimiä, jotka alkavat kirjaimella ”p”.

? on myös jokerimerkki, mutta se vastaa täsmälleen yhtä character.So ?ethane.pdb vastaisi methane.pdb taas*ethane.pdb sekä ethane.pdb että methane.pdb.

jokerimerkkejä voidaan käyttää yhdessä kaikkien muiden merkkien kanssa.g. ???ane.pdb vastaa kolmea merkkiä,joita seuraa ane.pdb, jolloin cubane.pdb ethane.pdb octane.pdb.

kun komentotulkki näkee yleismerkin, se laajentaa yleismerkin luodakseen alistin vastaavista tiedostonimistä ennen komennon ajamista, jolle pyydettiin. Poikkeuksena, jos yleismerkin lauseke ei vastaa mitä tahansa tiedostoa, bash välittää lausekkeen argumenttina sille komennolle, joka se on. Esimerkiksi kirjoittamalla ls *.pdfmolecules hakemistoon(joka sisältää vain tiedostoja, joiden nimet päättyvät .pdb) saadaan virheviesti siitä, ettei ole tiedostoa nimeltä *.pdf.Yleensä komennot, kuten wc ja ls, näkevät näitä ilmaisuja vastaavat tiedostojen nimet, mutta eivät jokerikortit itse. Se on komentotulkki, Ei muut ohjelmat, joka käsittelee jokerimerkkien laajentamista, ja tämä on toinen esimerkki ortogonaalisesta suunnittelusta.

listaa tiedostonimet, jotka sopivat kuvioon

kun ajetaan molecules hakemistoon, joka ls komento(s) willproduce tämä tuotos?

ethane.pdb methane.pdb

  1. ls *t*ane.pdb
  2. ls *t?ne.*
  3. ls *t??ne.pdb
  4. ls ethane.*

Solution

The solution is

shows all files whose names contain zero or more characters (*) followed by the letter t, then zero or more characters (*) followed by ane.pdb. Näin saadaan ethane.pdb methane.pdb octane.pdb pentane.pdb.

näyttää kaikki tiedostot, joiden nimet alkavat nollalla tai useammalla merkillä (*), jota seuraa kirjain t, sitten yksi merkki (?), sitten ne., jota seuraa nolla tai useampi merkki (*). Näin saadaan octane.pdb ja pentane.pdb, mutta ei vastaa mitään, mikä päättyy thane.pdb.

korjaa vaihtoehdon 2 ongelmat sovittamalla kaksi merkkiä (??) väliin t ja ne. Tämä on ratkaisu.

näyttää vain ethane..

More on jokerimerkit

Sam: lla on hakemisto, joka sisältää kalibrointitiedot, tietokokonaisuudet ja tietokokonaisuuksien kuvaukset:

.├── 2015-10-23-calibration.txt├── 2015-10-23-dataset1.txt├── 2015-10-23-dataset2.txt├── 2015-10-23-dataset_overview.txt├── 2015-10-26-calibration.txt├── 2015-10-26-dataset1.txt├── 2015-10-26-dataset2.txt├── 2015-10-26-dataset_overview.txt├── 2015-11-23-calibration.txt├── 2015-11-23-dataset1.txt├── 2015-11-23-dataset2.txt├── 2015-11-23-dataset_overview.txt├── backup│ ├── calibration│ └── datasets└── send_to_bob ├── all_datasets_created_on_a_23rd └── all_november_files

ennen kuin hän lähtee toiselle retkelle, hän haluaa varmuuskopioida tietonsa ja lähettää joitakin tietokokonaisuuksia kollegalleen Bobille. Sam käyttää seuraavia komentoja saadakseen homman hoidettua:

$ cp *dataset* backup/datasets$ cp ____calibration____ backup/calibration$ cp 2015-____-____ send_to_bob/all_november_files/$ cp ____ send_to_bob/all_datasets_created_on_a_23rd/

auta Sam täyttämällä tyhjät kohdat.

syntyvän hakemistorakenteen tulisi näyttää tältä

.├── 2015-10-23-calibration.txt├── 2015-10-23-dataset1.txt├── 2015-10-23-dataset2.txt├── 2015-10-23-dataset_overview.txt├── 2015-10-26-calibration.txt├── 2015-10-26-dataset1.txt├── 2015-10-26-dataset2.txt├── 2015-10-26-dataset_overview.txt├── 2015-11-23-calibration.txt├── 2015-11-23-dataset1.txt├── 2015-11-23-dataset2.txt├── 2015-11-23-dataset_overview.txt├── backup│ ├── calibration│ │ ├── 2015-10-23-calibration.txt│ │ ├── 2015-10-26-calibration.txt│ │ └── 2015-11-23-calibration.txt│ └── datasets│ ├── 2015-10-23-dataset1.txt│ ├── 2015-10-23-dataset2.txt│ ├── 2015-10-23-dataset_overview.txt│ ├── 2015-10-26-dataset1.txt│ ├── 2015-10-26-dataset2.txt│ ├── 2015-10-26-dataset_overview.txt│ ├── 2015-11-23-dataset1.txt│ ├── 2015-11-23-dataset2.txt│ └── 2015-11-23-dataset_overview.txt└── send_to_bob ├── all_datasets_created_on_a_23rd │ ├── 2015-10-23-dataset1.txt │ ├── 2015-10-23-dataset2.txt │ ├── 2015-10-23-dataset_overview.txt │ ├── 2015-11-23-dataset1.txt │ ├── 2015-11-23-dataset2.txt │ └── 2015-11-23-dataset_overview.txt └── all_november_files ├── 2015-11-23-calibration.txt ├── 2015-11-23-dataset1.txt ├── 2015-11-23-dataset2.txt └── 2015-11-23-dataset_overview.txt

ratkaisu

$ cp *calibration.txt backup/calibration$ cp 2015-11-* send_to_bob/all_november_files/$ cp *-23-dataset* send_to_bob/all_datasets_created_on_a_23rd/

hakemistojen ja tiedostojen järjestäminen

Jamie työskentelee projektissa ja näkee, että hänen tiedostonsa eivät ole kovin hyvin organisoituja:

$ ls -F
analyzed/ fructose.dat raw/ sucrose.dat

Thefructose.dat ja sucrose.dattiedostot sisältävät tulosteen hänen aineanalyysistaan. Mitä tämän oppitunnin sisältämiä komentoja hänen on suoritettava, jotta alla olevat komennot tuottaisivat näytetyn lähdön?

$ ls -F
analyzed/ raw/
$ ls analyzed
fructose.dat sucrose.dat

Solution

mv *.dat analyzed

Jamie needs to move her files fructose.dat and sucrose.dat to the analyzed directory.The shell will expand *.dat to match all .dat files in the current directory.The mv command then moves the list of .dat tiedostoja ’analysoitu’ hakemistoon.

toista kansiorakenne

olet aloittamassa uutta koetta, ja haluat kopioida suuntarakenteen edellisestä kokeesta, jotta voit lisätä uusia tietoja.

Oletetaan,että edellinen koe on kansiossa nimeltä”2016-05-18″, joka sisältää data kansion, joka puolestaan sisältää raw japrocessed tiedostoja sisältäviä kansioita. Tavoitteena on kopioida 2016-05-18-data kansio kansioon nimeltä 2016-05-20niin, että lopullinen hakemistorakenne näyttää tältä:

2016-05-20/└── data ├── processed └── raw

Mikä seuraavista komennoista olisi saavutetaanko tämä tavoite?Mitä muut komennot tekisivät?

$ mkdir 2016-05-20$ mkdir 2016-05-20/data$ mkdir 2016-05-20/data/processed$ mkdir 2016-05-20/data/raw
$ mkdir 2016-05-20$ cd 2016-05-20$ mkdir data$ cd data$ mkdir raw processed
$ mkdir 2016-05-20/data/raw$ mkdir 2016-05-20/data/processed

$ mkdir -p 2016-05-20/data/raw$ mkdir -p 2016-05-20/data/processed

$ mkdir 2016-05-20$ cd 2016-05-20$ mkdir data$ mkdir raw processed

ratkaisu

kaksi ensimmäistä komentosarjaa saavuttavat tämän tavoitteen.Ensimmäinen sarja käyttää suhteellisia polkuja luodakseen ylätason hakemiston ennen alikansioita.

kolmas komentojoukko antaa virheen, koska mkdir: n oletuskäyttäytyminen ei luo aliohjainta ei-eksistentistä hakemistosta: välitason kansiot on luotava ensin.

neljäs komentojoukko saavuttaa tämän tavoitteen. Muista, että -p – valinta, jota seuraa yhden tai useamman hakemiston polku, saa mkdir luomaan tarpeen mukaan välihakemistoja.

lopullinen komentojoukko luo ” raw ”- ja ”processed” – hakemistot samalle tasolle kuin ”data” – hakemisto.

avainkohdat

    cp kopioi tiedoston.

    mkdir luo uuden hakemiston.

    mv siirtää (nimeää) tiedoston tai kansion.

    rm poistaa (poistaa) tiedoston.

    *vastaa nollaa tai useampaa merkkiä tiedostonimessä, joten*.txtvastaa kaikkia tiedostoja, jotka päättyvät.txt.

    ?vastaa mitä tahansa yksittäistä merkkiä tiedostonimessä, joten?.txtmatchesa.txtmutta eiany.txt.

    Ohjausavaimen käyttöä voidaan kuvata monin tavoin, muun muassaCtrl-XControl-Xja^X.

  • kuoressa ei ole roskakoria: kun jokin on poistettu, se on todella poissa.

  • useimpien tiedostojen nimet ovat something.extension. Laajennusta ei tarvita, eikä se takaa mitään, mutta sitä käytetään yleensä osoittamaan tiedoston tietotyyppi.

  • riippuen siitä, millaista työtä teet, saatat tarvita Nanoa tehokkaamman tekstieditorin.