Práce se Soubory a S adresáři
Přehled
Výuka: 30 min
Cvičení: 20 minOtázky
Jak mohu vytvářet, kopírovat a mazat soubory a adresáře?
Jak mohu upravovat soubory?
cíle
Vytvořte hierarchii adresářů, která odpovídá danému diagramu.
vytvářejte soubory v této hierarchii pomocí editoru nebo kopírováním a přejmenováním existujících souborů.
Smazat, kopírovat a přesouvat zadané soubory a / nebo adresáře.
Vytváření adresářů
nyní víme, jak prozkoumat soubory a adresáře,ale jak jsme se vytvořit jim v první řadě?
Krok: podívejte se, kde jsme a co již máme
vraťme se k naší data-shell
adresář na Desktopand používání ls -F
vidět, co to obsahuje:
$ pwd
/Users/nelle/Desktop/data-shell
$ ls -F
creatures/ data/ molecules/ north-pacific-gyre/ notes.txt pizza.cfg solar.pdf writing/
Vytvořit adresář
Pojďme vytvořit nový adresář s názvem thesis
pomocí příkazu mkdir thesis
(který nemá žádný výstup):
$ mkdir thesis
Jak asi tušíte z jeho názvu,mkdir
znamená ‚označte adresář‘.Protože thesis
je relativní cesta (tj. nemá přední lomítko, jako /what/ever/thesis
),nový adresář se vytvoří v aktuálním pracovním adresáři:
$ ls -F
creatures/ data/ molecules/ north-pacific-gyre/ notes.txt pizza.cfg solar.pdf thesis/ writing/
co jsme právě vytvořili, thesis
adresáře, tam je nic v něm ale přesto:
$ ls -F thesis
Všimněte si, že mkdir
není omezen pouze na vytváření jednotného adresáře jeden po druhém. -p
umožňuje mkdir
vytvořte adresář s libovolným počtem vnořených podadresářů v jedné operaci:
$ mkdir -p thesis/chapter_1/section_1/subsection_1
-R
možnost ls
příkaz zobrazí seznam všech vnořených podadresářů v adresáři. Pojďme použít ls -FR
rekurzivně vypsat nový adresář hierarchie jsme právě vytvořili pod thesis
adresář:
$ ls -FR thesischapter_1/thesis/chapter_1:section_1/thesis/chapter_1/section_1:subsection_1/thesis/chapter_1/section_1/subsection_1:
Dva způsoby, jak dělat to samé
Pomocí shell vytvořit adresář není nic jiného než použití file explorer.Pokud otevřete aktuální adresář pomocí grafického Průzkumníka souborů operačního systému, zobrazí se zde také adresář
thesis
.Zatímco shell a průzkumník souborů jsou dva různé způsoby interakce se soubory, samotné soubory a adresáře jsou stejné.
Dobrá jména pro souborů a adresářů
Komplikované názvy souborů a adresářů, můžete vytvořit svůj život painfulwhen pracuje na příkazovém řádku. Zde uvádíme několik užitečnýchtipy pro názvy vašich souborů.
nepoužívejte mezery.
Prostory mohou udělat jméno smysluplnější,ale protože prostory se používají k oddělení argumentů na příkazovém linkuto je lepší se jim vyhnout v názvech souborů a adresářů.Místo toho můžete použít
-
nebo_
(např.north-pacific-gyre/
spíše nežnorth pacific gyre/
).nezačínejte název
-
(dash).příkazy považují názvy začínající
-
za volby.Hůl s písmeny, čísly,
.
(období nebo ‚tečka‘),-
(pomlčka) a_
(podtržítko).mnoho dalších znaků má na příkazovém řádku zvláštní význam.O některých z nich se dozvíme během této lekce.Existují speciální znaky, které mohou způsobit, že váš příkaz nebude fungovat jakočekané a mohou dokonce vést ke ztrátě dat.
Pokud potřebujete odkazovat na názvy souborů nebo adresářů, které mají spacesor jiné speciální znaky, měli byste obklopují jméno v uvozovkách (
""
).
Vytvoření textového souboru
Pojďme změnit náš pracovní adresář na thesis
pomocí cd
,spusťte textový editor nazvaný Nano vytvořit soubor s názvem draft.txt
:
$ cd thesis$ nano draft.txt
, Které Editor?
Když říkáme, ‚
nano
je textový editor se máme opravdu na mysli „text“: to canonly práce s prostý charakter dat, ne tabulky, obrázky, nebo jakýkoliv otherhuman-friendly media. Používáme jej v příkladech, protože je jedním z nejsložitějších textových editorů. Kvůli této vlastnosti to však můženebude dostatečně výkonný nebo dostatečně flexibilní pro práci, kterou musíte udělat po tomto Workshopu. Na Unixových systémů (jako je Linux a macOS),mnoho programátorů používat Emacs orVim (z nichž oba vyžadují více času se učit),nebo grafickém editoru, jako je asGedit. V systému Windows můžete přátpoužijte Poznámkový blok++. Windows má také vestavěný-ineditor nazývánotepad
, které lze spustit z příkazového řádku v stejným způsobem jakonano
pro účely této lekce.bez ohledu na to, jaký editor používáte, budete potřebovat vědět, kde vyhledává a ukládá soubory. Pokud jej spustíte z shellu, bude (pravděpodobně)používat váš aktuální pracovní adresář jako výchozí umístění. Používáte-li nabídku start vašeho počítače, může místo toho ukládat soubory do adresáře ordocuments na ploše. Můžete to změnit navigací do jiného adresáře při prvním uložení jako …
zadejte několik řádků textu.Jakmile jsme spokojeni s naší textu, můžeme stisknout kombinaci kláves Ctrl+O(stiskněte kombinaci kláves Ctrl nebo ctrl a, whileholding to dolů, stiskněte tlačítko O tlačítko) psát naše data na disk(budeme dotázáni jaký soubor chceme uložit na:stisknutím tlačítka Návrat do přijmout navrhl, default draft.txt
).
Jakmile se náš soubor je uložen, můžeme použít Ctrl+X ukončete editor andreturn do shellu.
ovládání, Ctrl nebo ^ klíč
Ovládací klíč se také nazývá klávesa „Ctrl“. Existují různé způsobyve kterém lze pomocí ovládacího tlačítka popsat. Například můžetePodívejte se na pokyn ke stisknutí ovládacího tlačítka a při jeho přidržení stiskněte klávesu X, která je popsána jako kterákoli z:
Control-X
Control+X
Ctrl-X
Ctrl+X
^X
C-x
V nano, podél dolní části obrazovky uvidíte
^G Get Help ^O WriteOut
.To znamená, že můžete použítControl-G
jak získat pomoc aControl-O
uložit yourfile.
nano
nedává žádný výstup na obrazovku poté, co opustí,ale ls
nyní se ukazuje, že máme vytvořený soubor s názvem draft.txt
:
$ ls
draft.txt
Vytváření Souborů jiným Způsobem
Jsme viděli, jak vytvořit textové soubory pomocí
nano
editor.Nyní zkuste následující příkaz:$ touch my_file.txt
Co
touch
příkaz?Když se podíváte na aktuální adresář pomocí Průzkumníka souborů GUI, zobrazí se soubor?pro kontrolu souborů použijte
ls -l
. Jak velký jemy_file.txt
?kdy chcete vytvořit soubor tímto způsobem?
Řešení
touch
příkaz vytvoří nový soubor s názvemmy_file.txt
ve vašem aktuálním adresáři. Můžete sledovat tento nově vygenerovaný soubor zadánímls
na příkazový řádek.my_file.txt
lze také zobrazit v Průzkumníku souborů yourGUI.Když si zkontrolujte, zda soubor s
ls -l
všimněte si, že velikostmy_file.txt
je 0 bajtů. Jinými slovy, neobsahuje žádná data.Pokud otevřetemy_file.txt
pomocí textového editoru, je prázdný.některé programy nevytvářejí výstupní soubory samy, alemísto toho vyžadují, aby prázdné soubory již byly vygenerovány.Když je program spuštěn, vyhledá existující souborpopulovat s jeho výstupem. Příkaz touch vám umožňujeefektivně vygenerovat prázdný textový soubor, který bude použit takovýmprogramy.
Co je V Názvu?
možná Jste si všimli, že všechny Nelle soubory jsou pojmenovány něco dotsomething‘, a v této části lekce jsme se vždy používá příponu
.txt
. Toto je jen konvence: můžeme volat soubormythesis
nebotéměř cokoli jiného chceme. Většina lidí však používá dvoudílná jménavětšinu času, aby jim pomohla (a jejich programům) rozeznat různé druhy souborů od sebe. Druhá část tohoto názvu se nazývá thefilename rozšíření, a indicateswhat typ dat soubor obsahuje:.txt
signály, prostý textový soubor,.cfg
je konfigurační soubor, plný parametersfor nějaký program, nebo jiný,.png
je PNG obrázek, a tak dále.Toto je jen konvence, i když důležitá. Soubory containbytes: je na nás a našich programech, abychom je interpretovali podle pravidel pro prosté textové soubory, dokumenty PDF, konfigurační soubory, obrázky atd.
Pojmenování PNG obrázek velryby jako
whale.mp3
nemá somehowmagically proměnit nahrávání whalesong, i když to mightcause operační systém, aby se pokusili otevřít s hudební playerwhen někdo poklepe.
Přesouvání souborů a adresářů
Návrat k data-shell
adresář,
cd ~/Desktop/data-shell/
V thesis
adresáři máme soubor draft.txt
, který není zvláště poučné jméno,tak se pojďme změnit název souboru pomocí mv
,což je zkratka pro „tah“:
$ mv thesis/draft.txt thesis/quotes.txt
první argument říká, mv
co jsme to „stěhování“, zatímco druhá je, kde to má jít.V tomto případě přesuneme thesis/draft.txt
na thesis/quotes.txt
, což má stejný účinek jako přejmenování souboru.Určitě dost,ls
ukazuje nám, že thesis
nyní obsahuje jeden soubor s názvem quotes.txt
:
$ ls thesis
quotes.txt
člověk musí být opatrný, když specifikovat cílový název souboru, jelikož mv
willsilently přepsat existující soubor se stejným názvem, který couldlead ke ztrátě dat. Další možnost, mv -i
(nebo mv --interactive
),mohou být použity, aby se mv
vás požádat o potvrzení před přepsáním.
Všimněte si, že mv
funguje také na adresářích.
přesuneme quotes.txt
do aktuálního pracovního adresáře.Používáme mv
ještě jednou,ale tentokrát použijeme jen název adresáře jako druhý argumentto říct, mv
, že chceme udržet názvem,ale dát soubor na nové místo.(Proto se příkaz nazývá „move“.) V tomto případě je název adresáře, který používáme, speciální název adresáře .
, který jsme zmínili dříve.
$ mv thesis/quotes.txt .
účinek je přesunout soubor z adresáře to bylo v aktuální pracovní adresář.ls
nyní nám ukazuje, že thesis
je prázdný:
$ ls thesis
Dalšíls
s názvem souboru nebo název adresáře jako argument uvádí pouze, že soubor nebo adresář.Můžeme to použít, abychom viděli, že quotes.txt
je stále v našem aktuálním adresáři:
$ ls quotes.txt
quotes.txt
Přesouvání Souborů do nové složky
Po spuštění následující příkazy Jamie si uvědomí, že ona dát soubory
sucrose.dat
maltose.dat
do špatné složky. Soubory měly být umístěny do složkyraw
.$ ls -F analyzed/ raw/$ ls -F analyzedfructose.dat glucose.dat maltose.dat sucrose.dat$ cd analyzed
Vyplnit prázdná místa, aby se tyto soubory přesunout do
raw/
složku(tj. jeden zapomněla dát je v)$ mv sucrose.dat maltose.dat ____/____
Řešení
$ mv sucrose.dat maltose.dat ../raw
vzpomeňte si, že
..
odkazuje na nadřazený adresář (tj. nad aktuální adresář), a že.
označuje aktuální adresář.
Kopírování souborů a adresářů
cp
příkaz funguje velmi podobně jako mv
,až na to, že kopie souboru místo přesunutí.Můžeme zkontrolovat, že udělal správnou věc pomocí ls
dvě cesty, jak argumenty — jako většina Unixových příkazů,ls
může být dána více cest najednou:
$ cp quotes.txt thesis/quotations.txt$ ls quotes.txt thesis/quotations.txt
quotes.txt thesis/quotations.txt
můžeme také zkopírovat adresář a celý jeho obsah pomocí therecursive možnost -r
,např. pro zálohování adresáře:
$ cp -r thesis thesis_backup
můžeme zkontrolovat výsledek pomocí výpisu obsahu jak thesis
thesis_backup
adresář:
$ ls thesis thesis_backup
thesis:quotations.txtthesis_backup:quotations.txt
Přejmenování Souborů
Předpokládejme, že jste vytvořili prostý-textový soubor v aktuálním adresáři obsahuje seznam thestatistical testy budete muset udělat, aby analyzovat vaše data, a to s názvem:
statstics.txt
Po vytvoření a uložení tohoto souboru si uvědomíte, že jste chybně názvem! Chceteopravit chybu, který z následujících příkazů byste k tomu mohli použít?
cp statstics.txt statistics.txt
mv statstics.txt statistics.txt
mv statstics.txt .
cp statstics.txt .
Řešení
- Ne. I když by to vytvořilo soubor se správným názvem, nesprávně pojmenovaný soubor stále existuje v directoryand by musel být odstraněn.
- Ano, To by fungovalo přejmenovat soubor.
- ne, tečka(.) označuje, kam přesunout soubor, ale neposkytuje nový název souboru; identické názvy souborůnemůže být vytvořen.
- ne, tečka(.) označuje, kam soubor zkopírovat, ale neposkytuje nový název souboru; identické názvy souborůnemůže být vytvořen.
Přesouvání a Kopírování
Jaká je výstupní uzavírací
ls
příkaz v pořadí uvedeném na obrázku níže?$ 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
.Druhý řádek přesune (mv
) souborproteins.dat
do nové složky (recombined
).Třetí řádek vytvoří kopii souboru, který jsme právě přesunuli. Choulostivá část je, kde byl soubor zkopírován. Připomeňme si, že..
znamená ‚jít o úroveň výš, takže zkopírovaný soubor je nyní v/Users/jamie
.Všimněte si, že..
je interpretován s ohledem na aktuální workingdirectory, nikoli s ohledem na umístění kopírovaného souboru.Takže, jediná věc, která bude zobrazovat pomocí ls (v/Users/jamie/data
) je rekombinované složky.
- ne, viz vysvětlení výše.
proteins-saved.dat
se nachází v/Users/jamie
- Ano
- Ne, viz vysvětlení výše.
proteins.dat
se nachází na/Users/jamie/data/recombined
- ne, viz vysvětlení výše.
proteins-saved.dat
se nachází v/Users/jamie
Odstraňování souborů a adresářů
Návrat k data-shell
adresář,pojďme uklidit tento adresář odstraněním quotes.txt
soubor, který jsme vytvořili.Unix příkaz použijeme pro to je rm
(zkratka pro „odstranit“):
$ rm quotes.txt
můžeme potvrdit, že soubor je pryč pomocí ls
:
$ ls quotes.txt
ls: cannot access 'quotes.txt': No such file or directory
Mazání Je Navždy
Unix shell nemá koše, že můžeme obnovit deletedfiles z (i když většina grafických rozhraní pro Unix). Místo toho, když odstraníme soubory, jsou odpojeny ze systému souborů, takže jejich úložný prostor na disku lze recyklovat. Nástroje pro nalezení a obnovení odstraněných souborů existují, ale neexistuje žádná záruka, že budou pracovat v jakékoli konkrétní situaci, protože počítač může okamžitě recyklovat místo na disku.
Použití rm Bezpečně
Co se stane, když provádíme
rm -i thesis_backup/quotations.txt
?Proč bychom chtěli tuto ochranu při použitírm
?Řešení
$ rm: remove regular file 'thesis_backup/quotations.txt'? y
-i
možnost vyzve před (každý) odstranění (využití Y pro potvrzení vymazání nebo N, aby soubor).Unix shell nemá koše, takže všechny soubory odstraněny zmizí forever.By pomocí-i
možnost, máme možnost zkontrolovat, že můžeme odstranit pouze ty soubory, které chceme odstranit.
Pokud se budeme snažit odstranit thesis
adresář pomocí rm thesis
,dostaneme chybová zpráva:
$ rm thesis
rm: cannot remove `thesis': Is a directory
To se děje proto, rm
ve výchozím nastavení funguje pouze na soubory, nikoliv adresáře.
rm
můžete odstranit adresář a celý jeho obsah pokud budeme používat therecursive možnost -r
, a bude tak činit bez potvrzení výzvy:
$ rm -r thesis
Vzhledem k tomu, že neexistuje žádný způsob, jak obnovit smazané soubory pomocí shell,rm -r
by měl být používán s velkou opatrností (můžete zvážit přidání interaktivních možností rm -r -i
).
operace s více soubory a adresáři
často je třeba kopírovat nebo přesouvat několik souborů najednou. To lze provést poskytnutím seznamu jednotlivých názvů souborů nebo zadáním vzoru pojmenování pomocí zástupných znaků.
Kopírovat s Více názvy Souborů
Pro toto cvičení, můžete vyzkoušet příkazy v
data-shell/data
adresář.v níže uvedeném příkladu, co dělá
cp
, když je uvedeno několik názvů souborů a název adresáře?$ mkdir backup$ cp amino-acids.txt animals.txt backup/
V příkladu, co znamená
cp
dělat, když dal tři nebo více názvů souborů?$ 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
Řešení
Pokud je uveden více než jeden název souboru, následuje název adresáře (tj. cílové adresáře musí být poslední argument),
cp
zkopíruje soubory na zadaný adresář.Pokud dané tři názvy souborů,
cp
vyvolá chybu, jako ten níže, protože je čeká directoryname jako poslední argument.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’. Na druhou stranu,p*.pdb
odpovídá pouzepentane.pdb
propane.pdb
, protože “ p „na přední onlymatches názvy souborů, které začínají písmenem „p“.
?
je také divoká karta, ale to odpovídá právě jeden znak.?ethane.pdb
by zápasmethane.pdb
vzhledem k tomu*ethane.pdb
zápasyethane.pdb
methane.pdb
.zástupné znaky lze použít ve vzájemné kombinaci.g.
???ane.pdb
zápasů tři znaky následujeane.pdb
,přičemžcubane.pdb ethane.pdb octane.pdb
.Když shell vidí zástupný znak, rozšiřuje zástupný vytvořit seznam odpovídajících názvů souborů před spuštěním příkazu, který wasasked pro. Výjimečně, pokud se výraz zástupných znaků neshodujekaždý soubor, Bash předá výraz jako argument příkazujak to je. Například zadáním
ls *.pdf
molecules
adresáři(který obsahuje pouze soubory s názvy končící.pdb
) výsledky inan chybová zpráva, že není žádný soubor s názvemwc
als
viz seznamy názvů souborů odpovídajících těmto výrazům, ale ne wildcardsthemselves. Jedná se o shell, ne o jiné programy, které se zabývajírozšiřování zástupných znaků a toto je další příklad ortogonálního designu.
Seznam souborů, odpovídající vzor
Při spuštění
molecules
adresář, kdels
příkaz(y) ohlásí tento výstup?
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
. To dáváethane.pdb methane.pdb octane.pdb pentane.pdb
.
zobrazuje všechny soubory, jejichž jména začínají s nula nebo více znaků (
*
) následuje písmenot
, pak jeden znak (?
ne.
následované nula nebo více znaků (*
). To nám dáoctane.pdb
pentane.pdb
, ale neodpovídá nic, co končí vthane.pdb
.
řeší problémy varianta 2 odpovídající dva znaky (
??
) mezit
ne
. Toto je řešení.
zobrazuje pouze soubory začínající
ethane.
.
Více na Zástupné znaky
Sam má adresář obsahující kalibračních dat, datových souborů, a popisy z datových souborů:
.├── 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
Než se vydáte na další výlet, chce zálohovat data aposílat některé soubory dat, k její kolega Bob. Sam používá následující commandsto získat práci:
$ 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/
Nápověda Sam vyplněním prázdná místa.
výsledná adresářová struktura by měla vypadat takhle.
.├── 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
Řešení
$ 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/
Organizování Adresářů a Souborů
Jamie pracuje na projektu, a vidí, že její soubory nejsou velmi, velmi dobře organizovanou:
$ ls -F
analyzed/ fructose.dat raw/ sucrose.dat
fructose.dat
sucrose.dat
soubory obsahují výstup z ní dataanalysis. Jaký příkaz (y) zahrnutý v této lekci musí spustit, aby níže uvedené příkazy vytvořily zobrazený výstup?$ 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 .soubory dat do adresáře „analyzed“.
Reprodukovat strukturu složek
začínáš nový experiment, a rád bych, aby duplicitní directorystructure z předchozího experimentu, takže můžete přidat nová data.
Předpokládejme, že předchozí experiment je ve složce s názvem ‚2016-05-18‘,která obsahuje
data
složka, která obsahuje složky s názvemraw
processed
, které obsahují datové soubory. Cílem je zkopírovat složku structureof2016-05-18-data
složky do složky s názvem2016-05-20
tak, aby vaše konečné adresářová struktura vypadá takto:2016-05-20/└── data ├── processed └── raw
Který z následujících sadu příkazů by dosažení tohoto cíle?Co by dělaly ostatní příkazy?
$ 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
Řešení
první dvě sady příkazů dosažení tohoto cíle.První sada používá relativní cesty k vytvoření adresáře nejvyšší úrovně před podadresáře.
třetí sada příkazů bude mít za následek chybu, protože výchozí chování
mkdir
nebude vytvořit subdirectoryof na neexistující adresář: středně pokročilé úrovni složky musí být vytvořena jako první.čtvrtá sada příkazů tohoto cíle dosáhne. Nezapomeňte, že volba
-p
, následovaná cestou jednoho nebo více adresářů, způsobí, žemkdir
vytvoří libovolné podadresáře podle potřeby.konečná sada příkazů generuje adresáře “ raw “ a „zpracované“ na stejné úrovni jako adresář „data“.
Klíčové Body
cp
kopie souboru.
mkdir
vytvoří nový adresář.
mv
přesune (přejmenuje) soubor nebo adresář.
rm
odstraní (odstraní) soubor.
*
odpovídá nula nebo více znaků v souboru, takže*.txt
zápasů všechny soubory, které končí v.txt
.
?
jeden libovolný znak v souboru, takže?.txt
zápasya.txt
any.txt
.Použití Kontrolní klíč může být popsán v mnoha ohledech, včetně
Ctrl-X
Control-X
^X
.shell nemá koš: jakmile je něco odstraněno, je to opravdu pryč.
názvy většiny souborů jsou
something.extension
. Přípona není vyžadována a nic nezaručuje, ale obvykle se používá k označení typu dat v souboru.V závislosti na typu práce, kterou děláte, možná budete potřebovat výkonnější textový editor než Nano.
Leave a Reply