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 thesis
Hakemisto, siinä ei ole vielä mitään:
$ ls -F thesis
huomaa, ettämkdir
ei 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 -R
valintals
komento 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,”
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äännotepad
, joka voidaan ajaa komentoriviltä samalla tavalla kuinnano
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
).
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-X
Control+X
Ctrl-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 jaControl-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ä
nano
editori.Kokeile nyt seuraavaa komentoa:$ touch my_file.txt
-
Mitä
touch
komento teki?Kun katsot nykyistä hakemistoasi GUI File explorer-ohjelman avulla, näkyykö tiedosto? -
käytä
ls -l
tiedostojen tarkastamiseen. Kuinka suuri onmy_file.txt
? -
milloin haluat luoda tiedoston näin?
ratkaisu
touch
komento luo uuden tiedostonmy_file.txt
nykyisessä hakemistossa. Voit tarkkailla tätä uutta tiedostoa kirjoittamallals
komentorivikehotteeseen.my_file.txt
voi katsoa myös yougui file Explorerissa.kun tarkastat tiedostoa
ls -l
, huomaa, ettämy_file.txt
koko on 0 tavua. Toisin sanoen se ei sisällä tietoja.Jos avaatmy_file.txt
tekstieditorilla, 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 tiedostoamythesis
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,.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änthesis
Hakemisto 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.txt
thesis/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.ls
nyt näyttää, ettäthesis
on 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.dat
jamaltose.dat
väärään kansioon. Tiedostot olisi pitänyt sijoittaaraw
– 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ä ls
kahdella 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äthesis
että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.txt
mv statstics.txt statistics.txt
mv 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
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
proteins-saved.dat recombined
recombined
proteins.dat recombined
proteins-saved.dat
Solution
We start in the
/Users/jamie/data
directory, and create a new folder calledrecombined
.Toinen rivi siirtää (mv
) tiedostonproteins.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.
- ei, katso selitys yllä.
proteins-saved.dat
sijaitsee osoitteessa/Users/jamie
- Kyllä
- ei, katso selitys yllä.
proteins.dat
sijaitsee osoitteessa/Users/jamie/data/recombined
- ei, katso selitys yllä.
proteins-saved.dat
sijaitsee osoitteessa/Users/jamie
tiedostojen ja hakemistojen poistaminen
paluu
data-shell
Hakemisto,siistitään tämä hakemisto poistamallaquotes.txt
luomamme tiedosto.Tähän käytettävä Unix-komento onrm
(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
-i
vaihtoehto 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äenrm thesis
,saamme virheilmoituksen:$ rm thesis
rm: cannot remove `thesis': Is a directory
tämä tapahtuu, koska
rm
oletuksena 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ä
cp
tekee, 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),
cp
kopioi 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 thedata-shell/molecules
directory:*.pdb
matchesethane.pdb
propane.pdb
, and everyfile that ends with ‘.pdb’. Toisaaltap*.pdb
vastaa vainpentane.pdb
japropane.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
vastaisimethane.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 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 *.pdf
molecules
hakemistoon(joka sisältää vain tiedostoja, joiden nimet päättyvät.pdb
) saadaan virheviesti siitä, ettei ole tiedostoa nimeltäwc
jals
, 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, jokals
komento(s) willproduce tämä tuotos?
ethane.pdb methane.pdb
ls *t*ane.pdb
ls *t?ne.*
ls *t??ne.pdb
ls 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.pdb
japentane.pdb
, mutta ei vastaa mitään, mikä päättyythane.pdb
.
korjaa vaihtoehdon 2 ongelmat sovittamalla kaksi merkkiä (
??
) väliint
jane
. 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
The
fructose.dat
jasucrose.dat
tiedostot 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
andsucrose.dat
to theanalyzed
directory.The shell will expand *.dat to match all .dat files in the current directory.Themv
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 kopioida2016-05-18-data
kansio kansioon nimeltä2016-05-20
niin, 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, saamkdir
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*.txt
vastaa kaikkia tiedostoja, jotka päättyvät.txt
.
?
vastaa mitä tahansa yksittäistä merkkiä tiedostonimessä, joten?.txt
matchesa.txt
mutta eiany.txt
.Ohjausavaimen käyttöä voidaan kuvata monin tavoin, muun muassa
Ctrl-X
Control-X
ja^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