fájlok és könyvtárak kezelése
áttekintés
tanítás: 30 perc
gyakorlatok: 20 perckérdések
hogyan lehet fájlokat és könyvtárakat létrehozni, másolni és törölni?
hogyan lehet szerkeszteni a fájlokat?
célok
Hozzon létre egy könyvtári hierarchiát, amely megfelel egy adott diagramnak.
fájlok létrehozása a hierarchiában szerkesztővel vagy meglévő fájlok másolásával és átnevezésével.
meghatározott fájlok és/vagy könyvtárak törlése, másolása és áthelyezése.
könyvtárak létrehozása
most már tudjuk,hogyan kell felfedezni a fájlokat és könyvtárakat, de hogyan hozhatjuk létre őket először?
első lépés: nézze meg, hol vagyunk, és mi már van
menjünk vissza a
data-shell
könyvtár az Asztalonés használja als -F
hogy megnézze, mit tartalmaz:$ pwd
/Users/nelle/Desktop/data-shell
$ ls -F
creatures/ data/ molecules/ north-pacific-gyre/ notes.txt pizza.cfg solar.pdf writing/
hozz Létre egy könyvtárat
hozzunk létre egy új könyvtárat az úgynevezett
thesis
parancs segítségévelmkdir thesis
(amely nem kimeneti):$ mkdir thesis
Mint azt sejteni lehet a neve,
mkdir
azt jelenti, hogy ‘mark könyvtár’.Mivelthesis
a relatív útvonal(azaz nem egy vezető slash, mint a/what/ever/thesis
),az új könyvtárat hoz létre az aktuális könyvtárban:$ ls -F
creatures/ data/ molecules/ north-pacific-gyre/ notes.txt pizza.cfg solar.pdf thesis/ writing/
Mivel már csak létre a
thesis
könyvtár, nincs benne még:$ ls -F thesis
Megjegyezzük, hogy a
mkdir
nem korlátozódik létrehozása egyes könyvtárak egy időben. A-p
opció lehetővé teszi amkdir
könyvtár létrehozását tetszőleges számú beágyazott alkönyvtárral egyetlen műveletben:$ mkdir -p thesis/chapter_1/section_1/subsection_1
a
-R
als
parancs az összes beágyazott alkönyvtárat felsorolja egy könyvtáron belül. Használjuk als -FR
rekurzívan felsorolni az új könyvtári hierarchiát, amelyet athesis
könyvtár alatt hoztunk létre:$ ls -FR thesischapter_1/thesis/chapter_1:section_1/thesis/chapter_1/section_1:subsection_1/thesis/chapter_1/section_1/subsection_1:
ugyanazon dolog két módja
a shell használata egy könyvtár létrehozásához nem különbözik a fájlkezelő használatától.Ha az aktuális könyvtárat az operációs rendszer grafikus fájlkezelőjével nyitja meg, akkor ott is megjelenik a
thesis
könyvtár.Míg a shell és a file explorer két különböző módon kölcsönhatásba lépnek a fájlokat, a fájlok és könyvtárak maguk ugyanazok.A fájlok és könyvtárak jó nevei
a fájlok és könyvtárak bonyolult nevei fájdalmasakká tehetikamikor a parancssorban dolgozik. Itt adunk néhány hasznostippek a fájlok nevéhez.
ne használjon szóközöket.
a szóközök értelmesebbé tehetik a nevet, de mivel a szóközöket a parancssor argumentumainak elválasztására használják, jobb elkerülni őket a fájlok és könyvtárak nevében.A
-
vagy_
helyett (pl.north-pacific-gyre/
helyettnorth pacific gyre/
).ne kezdje a nevet
-
(dash).parancsok a
-
opciókkal kezdődő neveket kezelik.Stick with letters, numbers,
.
(period or ‘full stop’),-
(dash) and_
(underscore).sok más karakternek különleges jelentése van a parancssorban.Ezek közül néhányat meg fogunk tanulni ebben a leckében.Vannak speciális karakterek, amelyek miatt a parancs nem működik asexpected, sőt adatvesztést is okozhat.
ha olyan fájlok vagy könyvtárak nevére kell hivatkozni, amelyeknek van helyükvagy más speciális karakterek, akkor a nevet idézőjelekben kell körülölelnie (
""
).hozzon létre egy szöveges fájlt
változtassuk meg a munkakönyvtárunkat
thesis
,majd futtasson egy nano nevű szövegszerkesztőt adraft.txt
/ div > :$ cd thesis$ nano draft.txt
melyik szerkesztő?
amikor azt mondjuk, ”
nano
egy szövegszerkesztő “valójában” szöveget ” értünk: csak egyszerű karakteradatokkal, nem táblázatokkal, képekkel vagy bármely más emberbarát médiával működhet. Példákban használjuk, mert ez az egyikaz utolsó összetett szövegszerkesztők. Ennek a tulajdonságnak köszönhetően azonban lehetnem elég erős vagy rugalmas ahhoz a munkához, amelyet meg kell tennieez után a műhely után. Unix rendszereken (például Linuxon és macOS-on) sok programozó használja az Emacs orVim-et (mindkettő több időt igényel a tanuláshoz), vagy egy grafikus szerkesztőt, például a gedit-et. Windows rendszeren érdemes lehethasználja a Notepad++programot. A Windowsnak van egy beépített szerkesztője is, az úgynevezettnotepad
, amely ugyanabból a parancssorból futtatható, mintnano
ennek a leckének a céljából.függetlenül attól, hogy milyen szerkesztőt használ, tudnia kell, hogy hol keres fájlokat. Ha elindítja a héjból, akkor (valószínűleg)az aktuális munkakönyvtárat fogja használni alapértelmezett helyként. Ha a számítógép start menüjét használja, érdemes lehet fájlokat menteni az asztali ordocuments könyvtárba. Ezt úgy módosíthatja, hogy navigál egy másik könyvtárba, amikor először “Mentés másként…”
írja be a szöveg néhány sorát.Miután elégedettek vagyunk a szövegünkkel, megnyomhatjuk a Ctrl+O billentyűt(nyomja meg a Ctrl vagy a Control billentyűt, majd lefelé nyomva nyomja meg az O gombot), hogy adatainkat lemezre írjuk (megkérdezzük, hogy milyen fájlt szeretnénk menteni:nyomja meg a Return billentyűt, hogy elfogadja a
draft.txt
javasolt alapértelmezését).Ha a fájlt, akkor használja a Ctrl+X-kilépett a szerkesztő andreturn, hogy a shell.
vezérlés, Ctrl vagy ^ kulcs
a vezérlőgombot “Ctrl” gombnak is nevezik. Vannak különböző módokamelyben a vezérlőgomb használata leírható. Előfordulhat például, hogy a vezérlőgomb megnyomására megjelenik egy utasítás,majd ha lenyomva tartja, nyomja meg az X billentyűt, amelyet a következők bármelyikeként ír le:
Control-X
Control+X
Ctrl+X
^X
C-x
a nano-ban a képernyő alján látható
^G Get Help ^O WriteOut
.Ez azt jelenti, hogy aControl-G
segítségével segítséget kaphat, aControl-O
pedig a fájl mentéséhez.
nano
nem hagy kimenet a képernyőn, miután kilép,de als
most azt mutatja, hogy létrehoztunk egy fájl nevedraft.txt
:$ ls
draft.txt
Létrehozása-Fájlok Másképp
láttuk, hogyan hozhat létre szöveges fájlok használata a
nano
szerkesztő.Most próbálja ki a következő parancsot:$ touch my_file.txt
mit tett a
touch
parancs?Ha megnézi az aktuális könyvtárat a GUI File explorer segítségével, megjelenik a fájl?használja a
ls -l
a fájlok ellenőrzéséhez. Mekkora amy_file.txt
?mikor szeretne ilyen módon létrehozni egy fájlt?
megoldás
a
touch
parancs létrehoz egy új fájlt, melynek nevemy_file.txt
in your current directory. Ezt az újonnan létrehozott fájlt als
beírásával figyelheti meg a parancssori parancssorba.my_file.txt
is megtekinthető yourGUI file explorer.amikor a
ls -l
fájlt ellenőrzi, vegye figyelembe, hogy amy_file.txt
mérete 0 bájt. Más szavakkal, nem tartalmaz adatokat.Ha megnyitmy_file.txt
a szövegszerkesztő használatával üres.egyes programok maguk nem generálnak kimeneti fájlokat, hanemehelyett megköveteli, hogy az üres fájlok már létrejöttek.A program futtatásakor egy meglévő fájlt keresnépszerű a kimenettel. A touch parancs lehetővé teszihatékonyan létrehoz egy üres szöveges fájlt, amelyet az ilyenprogramok használnak.
mi van a névben?
lehet, hogy észrevetted, hogy minden nelle fájl neve “valami dotsomething”, és a lecke ezen részében mindig a
.txt
kiterjesztést használtuk. Ez csak egy egyezmény: hívhatunk egy fájltmythesis
oralmost bármi mást, amit akarunk. A legtöbb ember azonban kétrészes neveket használa legtöbb időt arra, hogy segítsen nekik (és programjaiknak) megkülönböztetni a különböző típusú fájlokat. Az ilyen név második része afilename kiterjesztés, és jelziamilyen típusú adatokat tartalmaz a fájl:.txt
egy egyszerű szöveges fájlt jelez,.cfg
egy paraméterekkel teli konfigurációs fájlegy program vagy más,.png
egy PNG kép, stb.Ez csak egy egyezmény, bár fontos. Fájlok containbytes: rajtunk és programjainkon múlik, hogy értelmezzük ezeket a szövegfájlokat, PDF dokumentumokat, konfigurációfájlokat, képeket stb.
a bálna PNG-képének elnevezése
whale.mp3
nem somehowmagically kapcsolja be a whalesong felvételévé, bár az operációs rendszert arra készteti, hogy megpróbálja megnyitni egy zenelejátszóval, amikor valaki duplán kattint rá.Mozgó fájlok, könyvtárak
Visszatér a
data-shell
könyvtár,cd ~/Desktop/data-shell/
A
thesis
könyvtárban van egy fájldraft.txt
ami nem egy különösen tanulságos neve,akkor változtassuk meg a fájl nevét amv
,ami röviden a ‘mozgás’:$ mv thesis/draft.txt thesis/quotes.txt
Az első érv azt mondja,
mv
mi vagyunk ‘mozog’,míg a második az, ahol van, hogy menjen.Ebben az esetben athesis/draft.txt
thesis/quotes.txt
– ra költözünk,amelynek ugyanaz a hatása, mint a fájl átnevezése.Persze,ls
megmutatja nekünk, hogythesis
most egyquotes.txt
:$ ls thesis
$ ls thesis
div>
quotes.txt
a célfájl nevének megadásakor óvatosnak kell lenni, mivel a
mv
felülírja az azonos nevű létező fájlt, ami adatvesztéshez vezethet. Egy további lehetőség,mv -i
(vagymv --interactive
), lehet használni, hogymv
kérjen megerősítést felülírás előtt.vegye figyelembe, hogy a
mv
könyvtárakon is működik.mozgassuk a
quotes.txt
– t az aktuális munkakönyvtárba.Amv
ismét használjuk, de ezúttal csak a könyvtár nevét fogjuk használni, mint a második érvethogy elmondjukmv
, hogy meg akarjuk tartani a fájlnevet,de a fájlt új helyre tesszük.(Ezért hívják a parancsot “mozgásnak”.)Ebben az esetben az általunk használt könyvtárnév a.
speciális könyvtárnév, amelyet korábban említettünk.$ mv thesis/quotes.txt .
a hatás az, hogy áthelyezzük a fájlt a könyvtárból az aktuális munkakönyvtárba.
ls
most azt mutatja, hogythesis
üres:$ ls thesis
további,
ls
a fájlnév vagy könyvtárnév argumentumként csak az adott fájlt vagy könyvtárat sorolja fel.Használhatjuk ezt látni, hogy aquotes.txt
mindig az aktuális könyvtárban:$ ls quotes.txt
quotes.txt
a Fájlok áthelyezése egy új mappába
futtatása Után a következő parancsokat,Jamie rájön, hogy ő tette a fájlok
sucrose.dat
vagymaltose.dat
a hibás a mappa. A fájlokat araw
mappába kellett volna helyezni.$ ls -F analyzed/ raw/$ ls -F analyzedfructose.dat glucose.dat maltose.dat sucrose.dat$ cd analyzed
Töltse ki az üres mozgatni ezeket a fájlokat, hogy a
raw/
mappa(vagyis az, aki elfelejtette, hogy őket)$ mv sucrose.dat maltose.dat ____/____
Megoldás
$ mv sucrose.dat maltose.dat ../raw
Emlékezzünk vissza, hogy a
..
utal, hogy a szülő könyvtár (azaz a fenti az aktuális könyvtár), valamint, hogy a.
utal, hogy az aktuális könyvtárban.fájlok és könyvtárak másolása
The
cp
A parancs nagyon úgy működik,mint amv
, kivéve, ha áthelyezés helyett egy fájlt másol.Ellenőrizhetjük, hogy helyesen cselekedett — e als
használatával, két görbével argumentumként-mint a legtöbb Unix parancs,ls
egyszerre több görbét is megadhatunk:$ cp quotes.txt thesis/quotations.txt$ ls quotes.txt thesis/quotations.txt
quotes.txt thesis/quotations.txt
Mi is másolni egy könyvtár, valamint annak teljes tartalmát felhasználva therecursive opció
-r
,pl. egy könyvtárat:$ cp -r thesis thesis_backup
megnézhetjük az eredményt felsorolja a tartalmát, mind a
thesis
vagythesis_backup
könyvtár:$ ls thesis thesis_backup
thesis:quotations.txtthesis_backup:quotations.txt
Fájlok Átnevezése
Tegyük fel, hogy létrehozott egy sima-szöveges fájlt a jelenlegi könyvtár tartalmaz egy listát a thestatistical tesztet kell tennie, hogy elemezze az adatok neve:
statstics.txt
létrehozása Után, majd mentse a fájlt vettem észre, hogy elírtam a fájlnevet! Szeretné kijavítani a hibát, az alábbi parancsok közül melyiket használhatja erre?
cp statstics.txt statistics.txt
mv statstics.txt statistics.txt
mv statstics.txt .
cp statstics.txt .
/ol>
- no. Bár ez létrehozna egy megfelelő nevű fájlt, a helytelenül megnevezett fájl továbbra is létezik a könyvtárbanés törölni kell.
- Igen, ez a fájl átnevezésére szolgál.
- nem, az időszak(.) jelzi, hogy hova kell áthelyezni a fájlt, de nem ad meg új fájlnevet; azonos fájlneveknem hozható létre.
- nem, az időszak(.) jelzi, hogy hol másolja a fájlt, de nem ad új fájlnevet; azonos fájlneveketnem hoz létre.
mozgó és másoló
mi a kimenet a záró
ls
parancs az alábbi sorrendben?$ 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
.A második sor (mv
) aproteins.dat
fájlt az új mappába mozgatja (recombined
).A harmadik sor másolatot készít az éppen áthelyezett fájlról. A trükkös rész itt az, ahol a fájl voltmegnyitva. Emlékezzünk vissza, hogy a..
azt jelenti, hogy”menj fel egy szintre”, így a másolt fájl most/Users/jamie
.Vegye figyelembe, hogy a..
értelmezhető az aktuális munka szempontjából.könyvtár, nem a másolt fájl helyére vonatkozóan.Tehát az egyetlen dolog, amely az ls használatával jelenik meg (/Users/jamie/data
), a rekombinált mappa.
- nem, lásd a fenti magyarázatot.
proteins-saved.dat
a/Users/jamie
- Igen
- nem, lásd a fenti magyarázatot.
proteins.dat
a/Users/jamie/data/recombined
- nem, lásd a fenti magyarázatot.
proteins-saved.dat
a/Users/jamie
data-shell
könyvtár,rendezzük ezt a könyvtárat aquotes.txt
fájl eltávolításával.Az erre használt Unix parancs:rm
(az ‘Eltávolítás’ rövidítése):$ rm quotes.txt
megerősíthetjük, hogy a fájl elment a
ls
:$ ls quotes.txt
ls: cannot access 'quotes.txt': No such file or directory
a Unix shell nincs kuka, hogy mi lehet visszaállítani deletedfiles származó (bár a legtöbb grafikus felületek Unix do). Ehelyett, amikor töröljük a fájlokat, azokat nem kapcsolják ki a fájlrendszerből, hogya lemezen lévő tárhely újrahasznosítható legyen. A törölt fájlok megtalálására és helyreállítására szolgáló eszközök léteznek, de nincs garancia arra, hogy egy adott helyzetben dolgoznak, mivel a számítógép azonnal újrahasznosíthatja a fájl lemezterületét.
használata RM biztonságosan
mi történik, ha végre
rm -i thesis_backup/quotations.txt
?Miért szeretnénk ezt a védelmet, ha arm
?megoldás
$ rm: remove regular file 'thesis_backup/quotations.txt'? y
a
-i
opció a (minden) eltávolítás előtt felszólít (a törlés megerősítéséhez Y vagy N A fájl megtartásához).A Unix shell nem rendelkezik kukával, így az összes eltávolított fájl eltűnik forever.By a-i
opcióval ellenőrizhetjük, hogy csak az eltávolítani kívánt fájlokat töröljük-e.Ha megpróbáljuk eltávolítani a
thesis
könyvtár használatarm thesis
,akkor egy hibaüzenet jelenik meg:$ rm thesis
rm: cannot remove `thesis': Is a directory
Ez azért történik, mert a
rm
alapértelmezés szerint csak akkor működik, fájlok, könyvtárak nem.
rm
eltávolíthat egy könyvtárat és annak tartalmát, ha a-r
opciót használjuk, és ezt megerősítés nélkül kéri:$ rm -r thesis
tekintettel arra, hogy nincs mód a héj segítségével törölt fájlok letöltésére,
rm -r
óvatosan kell használni (érdemes megfontolni arm -r -i
) interaktív opció hozzáadását.műveletek több fájllal és könyvtárral
gyakran több fájlt kell egyszerre másolni vagy áthelyezni. Ezt úgy lehet megtenni, hogy megadja az egyes fájlnevek listáját, vagy megadja az elnevezési mintát helyettesítő karakterekkel.
másolás több fájlnévvel
ehhez a gyakorlathoz tesztelheti a parancsokat a könyvtárban.
az alábbi példában mit tesz a
cp
, ha több fájlnevet és könyvtárnevet kap?$ mkdir backup$ cp amino-acids.txt animals.txt backup/
az alábbi példában mit tesz a
cp
ha három vagy több fájlnevet kap?$ 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
Megoldás
Ha meg van adva több fájl nevét, majd egy könyvtár nevét (azaz a célkönyvtárat kell az utolsó érv),
cp
másolja a fájlokat a nevű könyvtár.Ha három fájlnevet adunk meg, akkor a
cp
hibát vét, például az alábbit, mert egy directoryname-t vár az utolsó argumentumként.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’. Ezzel szemben ap*.pdb
csak apentane.pdb
éspropane.pdb
mérkőzésekre vonatkozik, mivel a ” P “elöl csak a” P ” betűvel kezdődő fájlneveket jelöli.
?
is egy helyettesítő, de pontosan egy character.So?ethane.pdb
methane.pdb
*ethane.pdb
ethane.pdb
ésmethane.pdb
.joker lehet használni együtt minden oda.g.
???ane.pdb
három karakterből áll,amelyeketane.pdb
követ, ígycubane.pdb ethane.pdb octane.pdb
.amikor a shell egy helyettesítő kártyát lát, kibővíti a helyettesítő kártyát, hogy létrehozzon egy megfelelő fájlnevek alistját, mielőtt futtatná a wasasasked parancsot. Kivételként, ha egy helyettesítő kifejezés nem egyezbármilyen fájl, a Bash argumentumként adja át a kifejezést a parancsnak. Például a
ls *.pdf
beírása amolecules
könyvtárba(amely csak a.pdb
névvel végződő fájlokat tartalmazza) hibaüzenet, hogy nincswc
ésls
lásd a listákat offile nevek megfelelő ezeket a kifejezéseket, de nem a wildcardmaguk. Ez a shell, nem a többi program, amely foglalkozikbővítő helyettesítő karakterek, ez egy másik példa az ortogonális tervezésre.lista a
mintának megfelelő fájlneveket a
molecules
könyvtárban, amelyls
parancs(ok) vajon ez a kimenet?
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
. Ígyethane.pdb methane.pdb octane.pdb pentane.pdb
.
megmutatja az összes fájlt, amelynek neve nulla vagy több karakterrel kezdődik (), majd a
t
, majd egy karakter (?
), majdne.
majd nulla vagy több karakter (). Ez megadja nekünkoctane.pdb
éspentane.pdb
, de nem egyezik semmivel, ami athane.pdb
– ban végződik.
két karakter (
??
) illesztésével javítja a 2.opció problémáitt
ésne
. Ez a megoldás.
csak a
ethane.
fájlokkal kezdődő fájlokat jeleníti meg.tovább a helyettesítő karakterekről
A Sam könyvtár kalibrációs adatokat, adatkészleteket és az adatkészletek leírását tartalmazza:
.├── 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
mielőtt elindulna egy másik kirándulásra, biztonsági másolatot szeretne készíteni az adatairól ésküldjön néhány adatkészletet kollégájának, Bobnak. Sam a következő parancsokat használjaa feladat elvégzéséhez:
$ 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/
segítsen Sam-nek az üres helyek kitöltésével.
Az eredmény könyvtárszerkezet kell kinéznie
.├── 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
Megoldás
$ 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/
Szervező Könyvtárak, Fájlok
Jamie dolgozik egy projekten, majd meglátja, hogy a fájlok nem nagyon wellorganized:
$ ls -F
analyzed/ fructose.dat raw/ sucrose.dat
The
fructose.dat
éssucrose.dat
a fájlok kimenetet tartalmaznak az adatelemzésből. Milyen parancsot(parancsokat) kell futtatnia ebben a leckében, hogy az alábbi parancsok végrehajtsák a megjelenített kimenetet?$ 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 fájlok az “elemzett” könyvtárba.mappastruktúra reprodukálása
új kísérletet indít, és szeretné lemásolni a directorystructure-t az előző kísérletből, így új adatokat adhat hozzá.
feltételezzük, hogy az előző kísérlet egy ‘2016-05-18’ nevű mappában van, amely egy
data
mappát tartalmaz, amely viszontraw
ésprocessed
adatfájlokat tartalmazó mappákat tartalmaz. A cél az, hogy a2016-05-18-data
mappát a2016-05-20
nevű mappába másolja, hogy a végső könyvtárstruktúra így nézzen ki:2016-05-20/└── data ├── processed └── raw
a következő parancskészletek közül melyik elérné ezt a célt?Mit tenne a többi parancs?
$ 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
Megoldás
Az első két parancsok elérni ezt a célt.Az első készlet relatív útvonalakat használ a felső szintű könyvtár létrehozásáhozaz alkönyvtárak.
a harmadik parancskészlet hibát okoz, mivel a
mkdir
alapértelmezett viselkedése nem hoz létre alkönyvtárategy nem existant könyvtárból: először a közbenső szintű mappákat kell létrehozni.a parancsok negyedik halmaza eléri ezt a célt. Ne feledje, hogy a
-p
opció, amelyet egy vagy több könyvtár elérési útja követ, amkdir
bármely közbenső alkönyvtár létrehozásához szükséges.a végső parancskészlet a ” raw “és a” feldolgozott “könyvtárakat ugyanazon a szinten hozza létre, mint az “adat” könyvtár.
cp
egy fájlt másol.
mkdir
új könyvtárat hoz létre.
mv
áthelyez (átnevez) egy fájlt vagy könyvtárat.
rm
eltávolít (töröl) egy fájlt.a fájlnévben szereplő nulla vagy több karakter megegyezik, így
*.txt
a.txt
– ben végződő összes fájl megegyezik.
?
a fájlnév egyetlen karakterének felel meg, így?.txt
a.txt
de nemany.txt
.a vezérlőgomb használata sokféleképpen leírható, beleértve a
Ctrl-X
Control-X
és^X
.a héj nem rendelkezik kukával: miután valamit töröltek, tényleg eltűnt.
a legtöbb fájl neve
something.extension
. A kiterjesztés nem szükséges, és nem garantál semmit, de általában arra használják, hogy jelezze az adatok típusát a fájlban.az elvégzett munka típusától függően szükség lehet egy erősebb szövegszerkesztőre, mint a Nano.
Leave a Reply