työskentely tiedostojen ja hakemistojen kanssa
yleiskatsaus
opetus: 30 min
harjoitukset: 20 minkysymykset
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.
ä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/).älä aloita nimeä
-(dash).komennot käsittelevät
-alkavia nimiä vaihtoehtoina.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,”
nanoon 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äännotepad, joka voidaan ajaa komentoriviltä samalla tavalla kuinnanotä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).

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-XCtrl+X^XC-xnano, ruudun alaosassa näkyy
^G Get Help ^O WriteOut.Tämä tarkoittaa, että voit käyttääControl-Gsaadaksesi apua jaControl-Otallentaaksesi 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
-
Mitä
touchkomento teki?Kun katsot nykyistä hakemistoasi GUI File explorer-ohjelman avulla, näkyykö tiedosto? -
käytä
ls -ltiedostojen tarkastamiseen. Kuinka suuri onmy_file.txt? -
milloin haluat luoda tiedoston näin?
ratkaisu
touchkomento luo uuden tiedostonmy_file.txtnykyisessä hakemistossa. Voit tarkkailla tätä uutta tiedostoa kirjoittamallalskomentorivikehotteeseen.my_file.txtvoi katsoa myös yougui file Explorerissa.kun tarkastat tiedostoa
ls -l, huomaa, ettämy_file.txtkoko on 0 tavua. Toisin sanoen se ei sisällä tietoja.Jos avaatmy_file.txttekstieditorilla, se on tyhjä.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 tiedostoamythesistai 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:.txtviestii pelkkää tekstitiedostoa,.cfgon konfiguraatiotiedosto täynnä parametreja jollekin ohjelmalle tai muulle,.pngon 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.mp3ei 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 tiedostot
sucrose.datjamaltose.datväärään kansioon. Tiedostot olisi pitänyt sijoittaaraw– kansioon.$ ls -F analyzed/ raw/$ ls -F analyzedfructose.dat glucose.dat maltose.dat sucrose.dat$ cd analyzedTä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 ../rawmuistuttaa, 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.txttä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
- ei. Vaikka tämä luo tiedoston oikealla nimellä, virheellisesti nimetty tiedosto on edelleen olemassa Directoryssa ja se on poistettava.
- Kyllä, tämä toimisi tiedoston uudelleennimeämiseksi.
- ei, kausi(.) osoittaa, minne tiedosto siirretään, mutta ei anna uutta tiedostonimeä; identtistä tiedostonimeä ei voida luoda.
- ei, kausi(.) osoittaa, missä tiedosto kopioidaan, mutta ei anna uutta tiedostonimeä; identtistä tiedostonimeä ei voida luoda.
liikkuvat ja kopioivat
mikä on lopetuksen ulostulo
lskomento alla olevassa järjestyksessä?$ pwd/Users/jamie/data$ lsproteins.dat$ mkdir recombined$ mv proteins.dat recombined/$ cp recombined/proteins.dat ../proteins-saved.dat$ ls
proteins-saved.dat recombinedrecombinedproteins.dat recombinedproteins-saved.datSolution
We start in the
/Users/jamie/datadirectory, and create a new folder calledrecombined.Toinen rivi siirtää (mv) tiedostonproteins.datuuteen 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.
- ei, katso selitys yllä.
proteins-saved.datsijaitsee osoitteessa/Users/jamie- Kyllä
- ei, katso selitys yllä.
proteins.datsijaitsee osoitteessa/Users/jamie/data/recombined- ei, katso selitys yllä.
proteins-saved.datsijaitsee osoitteessa/Users/jamietiedostojen ja hakemistojen poistaminen
paluu
data-shellHakemisto,siistitään tämä hakemisto poistamallaquotes.txtluomamme tiedosto.Tähän käytettävä Unix-komento onrm(lyhenne sanoista ”remove”):$ rm quotes.txtvoimme vahvistaa, että tiedosto on mennyt käyttäen
ls:$ ls quotes.txtls: cannot access 'quotes.txt': No such file or directoryDeleting 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
thesishakemistoa käyttäenrm thesis,saamme virheilmoituksen:$ rm thesisrm: cannot remove `thesis': Is a directorytämä tapahtuu, koska
rmoletuksena toimii vain tiedostoissa, ei hakemistoissa.
rmvoi poistaa hakemiston ja kaiken sen sisällön, jos käytämme käännösvaihtoehtoa-r, ja se tekee sen ilman vahvistuskutsuja:$ rm -r thesiskoska poistettuja tiedostoja ei voi hakea komentotulkin avulla,
rm -rtulee 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/datahakemistossa.alla olevassa esimerkissä, mitä
cptekee, 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 -Famino-acids.txt animals.txt backup/ elements/ morse.txt pdb/ planets.txt salmon.txt sunspot.txt$ cp amino-acids.txt animals.txt morse.txtratkaisu
Jos annetaan useampi kuin yksi tiedostonimi, jota seuraa hakemiston nimi (eli kohdehakemiston on oltava viimeinen argumentti),
cpkopioi tiedostot nimettyyn hakemistoon.Jos annetaan kolme tiedostonimeä,
cpheittää alla olevan kaltaisen virheen, koska se odottaa johtonimeä viimeiseksi argumentiksi.cp: target ‘morse.txt’ is not a directoryUsing wildcards for accessing multiple files at once
Wildcards
*is a wildcard, which matches zero or more characters.Let’s consider thedata-shell/moleculesdirectory:*.pdbmatchesethane.pdbpropane.pdb, and everyfile that ends with ‘.pdb’. Toisaaltap*.pdbvastaa vainpentane.pdbjapropane.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.pdbvastaisimethane.pdbtaas*ethane.pdbsekäethane.pdbettämethane.pdb.jokerimerkkejä voidaan käyttää yhdessä kaikkien muiden merkkien kanssa.g.
???ane.pdbvastaa kolmea merkkiä,joita seuraaane.pdb, jolloincubane.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 *.pdfmoleculeshakemistoon(joka sisältää vain tiedostoja, joiden nimet päättyvät.pdb) saadaan virheviesti siitä, ettei ole tiedostoa nimeltäwcjals, 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
moleculeshakemistoon, jokalskomento(s) willproduce tämä tuotos?
ethane.pdb methane.pdb
ls *t*ane.pdbls *t?ne.*ls *t??ne.pdbls ethane.*Solution
The solution is
shows all files whose names contain zero or more characters (*) followed by the lettert, then zero or more characters (*) followed byane.pdb. Näin saadaanethane.pdb methane.pdb octane.pdb pentane.pdb.
näyttää kaikki tiedostot, joiden nimet alkavat nollalla tai useammalla merkillä (*), jota seuraa kirjaint, sitten yksi merkki (?), sittenne., jota seuraa nolla tai useampi merkki (*). Näin saadaanoctane.pdbjapentane.pdb, mutta ei vastaa mitään, mikä päättyythane.pdb.
korjaa vaihtoehdon 2 ongelmat sovittamalla kaksi merkkiä (??) väliintjane. Tämä on ratkaisu.
näyttää vainethane..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_filesennen 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.txtratkaisu
$ 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 -Fanalyzed/ fructose.dat raw/ sucrose.datThe
fructose.datjasucrose.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 -Fanalyzed/ raw/$ ls analyzedfructose.dat sucrose.datSolution
mv *.dat analyzedJamie needs to move her files
fructose.datandsucrose.datto theanalyzeddirectory.The shell will expand *.dat to match all .dat files in the current directory.Themvcommand 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ää
datakansion, joka puolestaan sisältäärawjaprocessedtiedostoja sisältäviä kansioita. Tavoitteena on kopioida2016-05-18-datakansio kansioon nimeltä2016-05-20niin, että lopullinen hakemistorakenne näyttää tältä:2016-05-20/└── data ├── processed └── rawMikä 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 processedratkaisu
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, saamkdirluomaan tarpeen mukaan välihakemistoja.lopullinen komentojoukko luo ” raw ”- ja ”processed” – hakemistot samalle tasolle kuin ”data” – hakemisto.
avainkohdat
cpkopioi tiedoston.
mkdirluo uuden hakemiston.
mvsiirtää (nimeää) tiedoston tai kansion.
rmpoistaa (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 muassa
Ctrl-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.
Leave a Reply