Lavorare con file e directory
Panoramica
Insegnamento: 30 min
Esercizi: 20 minDomande
Come posso creare, copiare ed eliminare file e directory?
Come posso modificare i file?
Obiettivi
Crea una gerarchia di directory che corrisponda a un dato diagramma.
Creare file in quella gerarchia utilizzando un editor o copiando e rinominando i file esistenti.
Elimina, copia e sposta file e / o directory specificati.
Creazione di directory
Ora sappiamo come esplorare file e directory,ma come crearli in primo luogo?
Fase uno: vedi dove siamo e cosa abbiamo già
Torniamo alla nostra directory
data-shell
sul Desktopand usals -F
per vedere cosa contiene:$ pwd
/Users/nelle/Desktop/data-shell
$ ls -F
creatures/ data/ molecules/ north-pacific-gyre/ notes.txt pizza.cfg solar.pdf writing/
Creare una directory
creare una nuova directory chiamata
thesis
con il comandomkdir thesis
(che non ha uscita):$ mkdir thesis
Come si può intuire dal nome,
mkdir
significa ” marchio directory’.Poichéthesis
è il percorso relativo(cioè, non dispone di una barra, come/what/ever/thesis
),la creazione della nuova directory nella directory di lavoro corrente:$ ls -F
creatures/ data/ molecules/ north-pacific-gyre/ notes.txt pizza.cfg solar.pdf thesis/ writing/
Dal momento che abbiamo appena creato il
thesis
directory, non c’è niente in esso ancora:$ ls -F thesis
si noti che
mkdir
non è limitato alla creazione di un’unica directory, uno alla volta.-p
opzione permette dimkdir
per creare una directory con qualsiasi numero di nidificati sottodirectory in una singola operazione:$ mkdir -p thesis/chapter_1/section_1/subsection_1
-R
opzionels
comando elencherà tutti nidificato sottocartelle all’interno di una directory. Usiamols -FR
per elencare ricorsivamente la nuova gerarchia di directory appena creata sotto la directorythesis
:$ ls -FR thesischapter_1/thesis/chapter_1:section_1/thesis/chapter_1/section_1:subsection_1/thesis/chapter_1/section_1/subsection_1:
Due modi per fare la stessa cosa
Usare la shell per creare una directory non è diverso dall’usare un esplora file.Se si apre la directory corrente utilizzando il file explorer grafico del sistema operativo, verrà visualizzata anche la directory
thesis
.Mentre la shell e il file explorer sono due modi diversi di interagire con i file,i file e le directory stessi sono gli stessi.I buoni nomi per file e directory
I nomi complicati di file e directory possono rendere la tua vita dolorosaquando lavori sulla riga di comando. Qui forniamo alcuni suggerimenti utili per i nomi dei tuoi file.
Non usare spazi.
Gli spazi possono rendere un nome più significativo,ma poiché gli spazi sono usati per separare gli argomenti sulla riga di comandoè meglio evitarli nei nomi di file e directory.È possibile utilizzare
-
o_
invece (ad esempionorth-pacific-gyre/
invece dinorth pacific gyre/
).Non iniziare il nome con
-
(trattino).I comandi trattano i nomi che iniziano con
-
come opzioni.Attaccare con lettere, numeri,
.
(punto o ‘punto’),-
(trattino basso) e_
(sottolineatura).Molti altri caratteri hanno significati speciali sulla riga di comando.Impareremo alcuni di questi durante questa lezione.Ci sono caratteri speciali che possono causare il comando di non funzionare asexpected e può anche causare la perdita di dati.
Se è necessario fare riferimento a nomi di file o directory che hanno spazioo altri caratteri speciali, è necessario circondare il nome tra virgolette (
""
).Creare un file di testo
cambiamo la nostra directory di lavoro
thesis
usocd
,quindi eseguire un editor di testo chiamato Nano per creare un file chiamatodraft.txt
:$ cd thesis$ nano draft.txt
Quale editor?
Quando diciamo, ‘
nano
è un editor di testo’ intendiamo davvero ‘testo’: può funzionare solo con dati di caratteri semplici, non tabelle, immagini o qualsiasi altro supporto umano. Lo usiamo negli esempi perché è uno degli ultimi editor di testo complessi. Tuttavia, a causa di questo tratto, maynot essere abbastanza potente o abbastanza flessibile per il lavoro che dovete doafter questo workshop. Su sistemi Unix (come Linux e macOS),molti programmatori usano Emacs orVim (entrambi richiedono più tempo per imparare),o un editor grafico come Egedit. Su Windows, potresti desiderareutilizzare Notepad++. Windows ha anche un built-ineditor chiamatonotepad
che può essere eseguito dalla riga di comando nello stesso modo comenano
per gli scopi di questa lezione.Non importa quale editor si utilizza, è necessario sapere dove searchesfor e salva i file. Se lo si avvia dalla shell, utilizzerà (probabilmente)la directory di lavoro corrente come posizione predefinita. Se si useyour menu di avvio del computer, si consiglia di salvare i file nella directory desktop ordocuments invece. Puoi cambiarlo navigando verso un’altra directory la prima volta che’Salva come As ‘
Digitiamo alcune righe di testo.Una volta che siamo soddisfatti del nostro testo, possiamo premere Ctrl+O(premere il tasto Ctrl o Control e, mentre lo teniamo premuto, premere il tasto O) per scrivere i nostri dati su disco(ci verrà chiesto in quale file vogliamo salvarlo:premere Invio per accettare l’impostazione predefinita suggerita di
draft.txt
).Una volta salvato il nostro file, possiamo usare Ctrl+X per uscire dall’editor e tornare alla shell.
Control, Ctrl, or ^ Key
Il tasto Control è anche chiamato tasto ‘Ctrl’. Ci sono vari modiin cui utilizzando il tasto di controllo può essere descritto. Ad esempio, è possibile visualizzare un’istruzione per premere il tasto Control e, tenendolo premuto, premere il tasto X, descritto come uno dei:
Control-X
Control+X
Ctrl-X
Ctrl+X
^X
C-x
nano, lungo la parte inferiore dello schermo si vedrà
^G Get Help ^O WriteOut
.Ciò significa che puoi usareControl-G
per ottenere aiuto eControl-O
per salvare il tuo file.
nano
non lascia alcun output sullo schermo dopo che esce,mals
mostra ora che abbiamo creato un file chiamatodraft.txt
:$ ls
draft.txt
Creazione di File di un Modo Diverso
Abbiamo visto come creare file di testo utilizzando il
nano
editor.Ora, prova il seguente comando:$ touch my_file.txt
Cosa ha fatto il comando
touch
?Quando guardi la tua directory corrente usando l’esploratore di file GUI, il file viene visualizzato?Utilizzare
ls -l
per ispezionare i file. Quanto è grandemy_file.txt
?Quando potresti voler creare un file in questo modo?
Soluzione
Il comando
touch
genera un nuovo file chiamatomy_file.txt
nella directory corrente. Puoi osservare questo file appena generato digitandols
al prompt della riga di comando.my_file.txt
può anche essere visualizzato in yourGUI file explorer.Quando si ispeziona il file con
ls -l
, si noti che la dimensione dimy_file.txt
è di 0 byte. In altre parole, non contiene dati.Se aprimy_file.txt
usando il tuo editor di testo, è vuoto.Alcuni programmi non generano file di output da soli, ma richiedono invece che i file vuoti siano già stati generati.Quando il programma viene eseguito, cerca un file esistentepopolare con il suo output. Il comando touch consente di generare in modo efficiente un file di testo vuoto da utilizzare da tali programmi.
Cosa c’è in un nome?
Potresti aver notato che tutti i file di Nelle sono chiamati ‘something dotsomething’, e in questa parte della lezione, abbiamo sempre usato l’estensione
.txt
. Questa è solo una convenzione: possiamo chiamare un filemythesis
oquasi qualsiasi altra cosa vogliamo. Tuttavia, la maggior parte delle persone usa nomi in due parti la maggior parte del tempo per aiutarli (e i loro programmi) a distinguere diversi tipi di file. La seconda parte di tale nome è chiamato thefilename estensione, e indicateswhat tipo di dati che il file contiene:.txt
segnali di un file di testo.cfg
è un file di configurazione completo di parametersfor qualche programma o altro,.png
è un immagine PNG, e così via.Questa è solo una convenzione, anche se importante. File containbytes: spetta a noi e ai nostri programmi di interpretare quei bytesaccording alle regole per i file di testo normale, documenti PDF, configurationfiles, immagini, e così via.
Nominare un’immagine PNG di una balena come
whale.mp3
non lo trasforma in qualche modo in una registrazione di canto delle balene, anche se potrebbe indurre il sistema operativo a provare ad aprirlo con un lettore musicale quando qualcuno lo fa doppio clic.Spostamento di file e directory
Ritorno
data-shell
directory,cd ~/Desktop/data-shell/
il
thesis
directory in cui si dispone di un filedraft.txt
che non è un particolare nome informativo,proviamo a cambiare il nome del file utilizzandomv
che è l’abbreviazione di ‘spostare’:$ mv thesis/draft.txt thesis/quotes.txt
Il primo argomento indica
mv
quello che siamo ‘in movimento’,mentre la seconda è dove andare.In questo caso,stiamo spostandothesis/draft.txt
athesis/quotes.txt
,che ha lo stesso effetto di rinominare il file.Abbastanza sicuro, ills
ci mostra chethesis
ora contiene un file chiamatoquotes.txt
:$ ls thesis
quotes.txt
si deve prestare attenzione quando si specifica il nome del file di destinazione, in quanto
mv
willsilently sovrascrivere i file con lo stesso nome, che couldlead alla perdita di dati. Un’opzione aggiuntiva,mv -i
(omv --interactive
),può essere utilizzata per chiedere conferma prima di sovrascriveremv
.Si noti che
mv
funziona anche sulle directory.Spostiamo
quotes.txt
nella directory di lavoro corrente.Usiamo ancora una voltamv
, ma questa volta useremo solo il nome di una directory come secondo argomentoper dire amv
che vogliamo mantenere il nome del file,ma mettere il file da qualche parte nuovo.(Questo è il motivo per cui il comando si chiama ‘move’.)In questo caso, il nome della directory che usiamo è il nome della directory speciale.
che abbiamo menzionato prima.$ mv thesis/quotes.txt .
L’effetto è quello di spostare il file dalla directory in cui si trovava alla directory di lavoro corrente.
ls
ora ci mostra chethesis
è vuoto:$ ls thesis
Inoltre,
ls
con un nome di un file o di una directory di nome come argomento solo elenchi di file o directory.Possiamo usare questo per vedere chequotes.txt
è ancora nella nostra directory corrente:$ ls quotes.txt
quotes.txt
Spostare i File in una nuova cartella
Dopo aver eseguito i seguenti comandi Jamie si rende conto che ha messo il file
sucrose.dat
emaltose.dat
nella cartella sbagliata. I file dovrebbero essere stati inseriti nella cartellaraw
.$ ls -F analyzed/ raw/$ ls -F analyzedfructose.dat glucose.dat maltose.dat sucrose.dat$ cd analyzed
Riempire gli spazi vuoti per spostare questi file
raw/
cartella(cioè quello che lei ha dimenticato di metterli in)$ mv sucrose.dat maltose.dat ____/____
Soluzione
$ mv sucrose.dat maltose.dat ../raw
Ricordiamo che
..
si riferisce alla directory padre (cioè uno sopra l’directory corrente)e che.
si riferisce alla directory corrente.Copia di file e directory
Il comando
cp
funziona molto comemv
, tranne che copia un file invece di spostarlo.Possiamo verificare che abbia fatto la cosa giusta usandols
con due percorsi come argomenti-come la maggior parte dei comandi Unix,ls
può essere dato più percorsi contemporaneamente:$ cp quotes.txt thesis/quotations.txt$ ls quotes.txt thesis/quotations.txt
quotes.txt thesis/quotations.txt
Si può anche copiare una directory e tutto il suo contenuto utilizzando therecursive opzione
-r
,ad esempio, per eseguire il backup di una directory:$ cp -r thesis thesis_backup
Siamo in grado di controllare il risultato, che elenca i contenuti di entrambi i
thesis
ethesis_backup
directory:$ ls thesis thesis_backup
thesis:quotations.txtthesis_backup:quotations.txt
la Ridenominazione dei File
si Supponga di aver creato una pianura file di testo nella directory corrente contengono un elenco di thestatistical test è necessario fare per analizzare i dati, il cui nome è:
statstics.txt
Dopo aver creato e salvato questo file si accorge di aver scritto male il nome del file! Vuoi correggere l’errore, quale dei seguenti comandi potresti usare per farlo?
cp statstics.txt statistics.txt
mv statstics.txt statistics.txt
mv statstics.txt .
cp statstics.txt .
Soluzione
- No. Mentre questo creerebbe un file con il nome corretto, il file con nome errato esiste ancora in directoryand dovrebbe essere eliminato.
- Sì, questo funzionerebbe per rinominare il file.
- No, il periodo(.) indica dove spostare il file, ma non fornisce un nuovo nome di file; nomi di file identici non possono essere creati.
- No, il periodo(.) indica dove copiare il file, ma non fornisce un nuovo nome di file; nomi di file identici non possono essere creati.
Spostamento e copia
Qual è l’output del comando di chiusura
ls
nella sequenza mostrata di seguito?$ 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
.La seconda riga sposta (mv
) il fileproteins.dat
nella nuova cartella (recombined
).La terza riga fa una copia del file che abbiamo appena spostato. La parte difficile qui è dove il file è stato copiato. Ricordiamo che..
significa ‘salire di un livello’, quindi il file copiato è ora in/Users/jamie
.Si noti che..
viene interpretato rispetto alla directory di lavoro corrente, non rispetto alla posizione del file da copiare.Quindi, l’unica cosa che mostrerà usando ls (in/Users/jamie/data
) è la cartella ricombinata.
- No, vedi la spiegazione sopra.
proteins-saved.dat
si trova a/Users/jamie
- Sì
- No, vedere la spiegazione sopra.
proteins.dat
si trova a/Users/jamie/data/recombined
- No, vedere la spiegazione sopra.
proteins-saved.dat
/Users/jamie
la Rimozione di file e directory
Ritorno
data-shell
directory,proviamo a riordinare questa directory rimuovendo ilquotes.txt
file che abbiamo creato.Il comando Unix che useremo per questo èrm
(abbreviazione di ‘rimuovere’):$ rm quotes.txt
Possiamo confermare che il file è andato con
ls
:$ ls quotes.txt
ls: cannot access 'quotes.txt': No such file or directory
la Cancellazione È per Sempre
La shell di Unix non ha un cestino che siamo in grado di recuperare deletedfiles da (anche se la maggior parte delle interfacce grafiche per Unix fare). Invece, quando eliminiamo i file, vengono scollegati dal file system in modo che il loro spazio di archiviazione su disco possa essere riciclato. Gli strumenti per trovare andrecovering i file cancellati esistono, ma non c’è nessuna garanzia che lavoreranno in qualsiasi situazione particolare, dal momento che il computer può riciclare lo spazio su disco di thefile subito.
Usare rm in modo sicuro
Cosa succede quando eseguiamo
rm -i thesis_backup/quotations.txt
?Perché dovremmo volere questa protezione quando si utilizzarm
?Soluzione
$ rm: remove regular file 'thesis_backup/quotations.txt'? y
L’opzione
-i
chiederà prima di (ogni) rimozione (utilizzare Y per confermare l’eliminazione o N per mantenere il file).La shell Unix non ha un cestino, quindi tutti i file rimossi scompariranno forever.By usando l’opzione-i
, abbiamo la possibilità di verificare che stiamo eliminando solo i file che vogliamo rimuovere.Se si tenta di rimuovere il
thesis
cartellarm thesis
,si ottiene un messaggio di errore:$ rm thesis
rm: cannot remove `thesis': Is a directory
Questo accade perché
rm
per impostazione predefinita funziona solo su file, non di directory.
rm
può rimuovere una directory e tutti i suoi contenuti se usiamo l’opzione corsiva-r
, e lo farà senza alcuna richiesta di conferma:$ rm -r thesis
Dato che non c’è modo di recuperare i file eliminati utilizzando la shell,
rm -r
dovrebbe essere usato con molta cautela (si potrebbe considerare l’aggiunta di interattivo opzionerm -r -i
).Operazioni con più file e directory
Spesso è necessario copiare o spostare più file contemporaneamente. Questo può essere fatto fornendo un elenco di singoli nomi di file, o specificando un modello di denominazione utilizzando caratteri jolly.
Copia con più nomi di file
Per questo esercizio, è possibile testare i comandi nella directory
data-shell/data
.Nell’esempio seguente, cosa fa
cp
quando vengono dati diversi nomi di file e un nome di directory?$ mkdir backup$ cp amino-acids.txt animals.txt backup/
Nell’esempio seguente, cosa fa
cp
quando vengono assegnati tre o più nomi di file?$ 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
Soluzione
Se il dato più di un nome di file seguito da un nome di directory (cioè la directory di destinazione va l’ultimo argomento),
cp
copia i file nella directory con nome.Se vengono dati tre nomi di file,
cp
genera un errore come quello qui sotto, perché si aspetta un directoryname come ultimo argomento.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’. D’altra parte,p*.pdb
corrisponde solo apentane.pdb
epropane.pdb
, perché la ‘p’ sul frontemaccoda i nomi dei file che iniziano con la lettera ‘p’.
?
è anche un jolly, ma è esattamente corrispondente a un carattere.Così?ethane.pdb
sarebbe partitamethane.pdb
mentre*ethane.pdb
corrisponde aethane.pdb
emethane.pdb
.I caratteri jolly possono essere utilizzati in combinazione tra loro.g.
???ane.pdb
corrisponde a tre caratteri seguiti daane.pdb
,dandocubane.pdb ethane.pdb octane.pdb
.Quando la shell vede un carattere jolly, espande il carattere jolly per creare un elenco di nomi di file corrispondenti prima di eseguire il comando che è stato richiesto. Come eccezione, se un’espressione jolly non corrisponde a qualsiasi file, Bash passerà l’espressione come argomento al commandcome è. Ad esempio, digitando
ls *.pdf
nella directorymolecules
(che contiene solo file con nomi che terminano con.pdb
) si ottiene un messaggio di errore che indica che non esiste alcun file chiamatowc
els
vedono gli elenchi dei nomi dei file corrispondenti a queste espressioni, ma non le wildcard. È la shell, non gli altri programmi, che si occupa diespandere i caratteri jolly, e questo è un altro esempio di progettazione ortogonale.Elenca i nomi dei file corrispondenti a un modello
Quando viene eseguito nella directory
molecules
, chels
willproduce questo output?
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
. Questo dà .
mostra tutti i file i cui nomi iniziano con zero o più caratteri (
*
), seguita dalla letterat
, quindi un singolo carattere (?
), quindine.
seguito da zero o più caratteri (*
). Questo ci daràoctane.pdb
epentane.pdb
ma non corrisponde a nulla che termina inthane.pdb
.
risolve i problemi dell’opzione 2 facendo corrispondere due caratteri (
??
) trat
ene
. Questa è la soluzione.
mostra solo i file che iniziano con
ethane.
.Maggiori informazioni sui caratteri jolly
Sam ha una directory contenente dati di calibrazione, set di dati e descrizioni dei set di dati:
.├── 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
Prima di partire per un’altra gita, vuole eseguire il backup dei suoi dati e inviare alcuni set di dati al suo collega Bob. Sam usa i seguenti comandiper portare a termine il lavoro:
$ 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/
Aiuta Sam compilando gli spazi vuoti.
La cartella con struttura dovrebbe essere simile a questo
.├── 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
Soluzione
$ 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/
l’Organizzazione di File e Directory
Jamie sta lavorando su un progetto e vede che il suo file non sono molto ben organizzata:
$ ls -F
analyzed/ fructose.dat raw/ sucrose.dat
fructose.dat
esucrose.dat
file contengono uscita dal suo dataanalysis. Quali comandi trattati in questa lezione ha bisogno di eseguire in modo che i comandi sottostanti producano l’output mostrato?$ 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 .file dat nella directory ‘analizzata’.Riprodurre una struttura di cartelle
stai iniziando un nuovo esperimento, e vorrei duplicare il directorystructure dal precedente esperimento in modo da poter aggiungere nuovi dati.
Si supponga che l’esperimento precedente si trovi in una cartella denominata ‘2016-05-18’,che contiene una cartella
data
che a sua volta contiene cartelle denominateraw
eprocessed
che contengono file di dati. L’obiettivo è copiare la struttura della folder della cartella2016-05-18-data
in una cartella chiamata2016-05-20
in modo che la struttura della directory finale sia simile a questa:2016-05-20/└── data ├── processed └── raw
Quale dei seguenti comandi sarebbe raggiungere questo obiettivo?Cosa farebbero gli altri comandi?
$ 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
Soluzione
I primi due set di comandi di raggiungere questo obiettivo.Il primo set utilizza percorsi relativi per creare la directory di livello superiore primale sottodirectory.
Il terzo set di comandi darà un errore perché il comportamento predefinito di
mkdir
non creerà una sottodirectory di una directory non esistente: le cartelle di livello intermedio devono essere create prima.La quarta serie di comandi raggiunge questo obiettivo. Ricorda, l’opzione
-p
, seguita da un percorso di una o più directory, farà sì chemkdir
crei qualsiasi sottodirectory intermedia come richiesto.Il set finale di comandi genera le directory ‘raw’ e ‘processed’ allo stesso livello della directory ‘data’.
Punti chiave
cp
copia un file.
mkdir
crea una nuova directory.
mv
sposta (rinomina) un file o una directory.
rm
rimuove (elimina) un file.
*
corrisponde a zero o più caratteri in un nome di file, quindi*.txt
corrisponde a tutti i file che terminano in.txt
.
?
corrisponde a qualsiasi singolo carattere in un nome di file, quindi?.txt
corrisponde aa.txt
ma nonany.txt
.L’uso del tasto Control può essere descritto in molti modi, tra cui
Ctrl-X
Control-X
e^X
.La shell non ha un cestino: una volta che qualcosa viene cancellato, è davvero andato.
La maggior parte dei nomi dei file sono
something.extension
. L’estensione non è richiesta e non garantisce nulla, ma viene normalmente utilizzata per indicare il tipo di dati nel file.A seconda del tipo di lavoro che fai, potresti aver bisogno di un editor di testo più potente di Nano.
Leave a Reply