Articles

fájlok és könyvtárak kezelése

áttekintés

tanítás: 30 perc
gyakorlatok: 20 perc
ké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 adata-shell könyvtár az Asztalonés használja a ls -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ével mkdir 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 a mkdir 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-Rals 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 a thesis 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.

  1. 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/ helyett north pacific gyre/).

  2. ne kezdje a nevet - (dash).

    parancsok a - opciókkal kezdődő neveket kezelik.

  3. 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 a draft.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 úgynevezett notepad, amely ugyanabból a parancssorból futtatható, mint nano 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.txtjavasolt alapértelmezését).

screenshot nano szövegszerkesztő akció

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 a Control-G segítségével segítséget kaphat, a Control-O pedig a fájl mentéséhez.

nano nem hagy kimenet a képernyőn, miután kilép,de a ls most azt mutatja, hogy létrehoztunk egy fájl neve draft.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
  1. 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?

  2. használja a ls -l a fájlok ellenőrzéséhez. Mekkora a my_file.txt?

  3. mikor szeretne ilyen módon létrehozni egy fájlt?

megoldás

  1. a touch parancs létrehoz egy új fájlt, melynek neve my_file.txt in your current directory. Ezt az újonnan létrehozott fájlt a ls beírásával figyelheti meg a parancssori parancssorba. my_file.txt is megtekinthető yourGUI file explorer.

  2. 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 megnyit my_file.txt a szövegszerkesztő használatával üres.

  3. 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.txtkiterjesztést használtuk. Ez csak egy egyezmény: hívhatunk egy fájlt mythesis 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, .pdfegy PDF dokumentumot 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ésewhale.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ájl draft.txtami nem egy különösen tanulságos neve,akkor változtassuk meg a fájl nevét a mv,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 a thesis/draft.txtthesis/quotes.txt – ra költözünk,amelynek ugyanaz a hatása, mint a fájl átnevezése.Persze,ls megmutatja nekünk, hogy thesis most egy quotes.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(vagy mv --interactive), lehet használni, hogy mv kérjen megerősítést felülírás előtt.

vegye figyelembe, hogy amv könyvtárakon is működik.

mozgassuk aquotes.txt – t az aktuális munkakönyvtárba.A mv ismét használjuk, de ezúttal csak a könyvtár nevét fogjuk használni, mint a második érvethogy elmondjuk mv, 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, hogy thesis ü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 a quotes.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 vagy maltose.dat a hibás a mappa. A fájlokat a raw 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 cpA parancs nagyon úgy működik,mint a mv, kivéve, ha áthelyezés helyett egy fájlt másol.Ellenőrizhetjük, hogy helyesen cselekedett — e a lshaszná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 vagy thesis_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?

  1. cp statstics.txt statistics.txt
  2. mv statstics.txt statistics.txt
  3. mv statstics.txt .
  4. cp statstics.txt ./ol>

    1. 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.
    2. Igen, ez a fájl átnevezésére szolgál.
    3. 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.
    4. 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
  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.A második sor (mv) a proteins.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.

  1. nem, lásd a fenti magyarázatot. proteins-saved.dat a /Users/jamie
  2. Igen
  3. nem, lásd a fenti magyarázatot. proteins.data /Users/jamie/data/recombined
  4. nem, lásd a fenti magyarázatot. proteins-saved.dat a /Users/jamie

data-shellkö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 a rm?

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álata rm 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 acp 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 the data-shell/molecules directory:*.pdb matches ethane.pdbpropane.pdb, and everyfile that ends with ‘.pdb’. Ezzel szemben a p*.pdbcsak apentane.pdbés propane.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.pdbmethane.pdb*ethane.pdbethane.pdb és methane.pdb.

joker lehet használni együtt minden oda.g. ???ane.pdbhárom karakterből áll,amelyeket ane.pdbkövet, így cubane.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 a molecules könyvtárba(amely csak a .pdb névvel végződő fájlokat tartalmazza) hibaüzenet, hogy nincs *.pdfnevű fájl.Azonban általában parancsok, mint a wcés ls 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, amely ls parancs(ok) vajon ez a kimenet?

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. Így ethane.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 (?), majd ne. majd nulla vagy több karakter (). Ez megadja nekünk octane.pdbés pentane.pdb, de nem egyezik semmivel, ami a thane.pdb – ban végződik.

két karakter (??) illesztésével javítja a 2.opció problémáit tés ne. 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

Thefructose.dat és sucrose.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 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 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 viszont raw ésprocessed adatfájlokat tartalmazó mappákat tartalmaz. A cél az, hogy a 2016-05-18-data mappát a 2016-05-20nevű 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 -popció, amelyet egy vagy több könyvtár elérési útja követ, a mkdir 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 ?.txta.txt de nem any.txt.

  • a vezérlőgomb használata sokféleképpen leírható, beleértve aCtrl-XControl-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.