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-shellsul Desktopand usals -Fper vedere cosa contiene:$ pwd/Users/nelle/Desktop/data-shell$ ls -Fcreatures/ data/ molecules/ north-pacific-gyre/ notes.txt pizza.cfg solar.pdf writing/Creare una directory
creare una nuova directory chiamata
thesiscon il comandomkdir thesis(che non ha uscita):$ mkdir thesisCome si può intuire dal nome,
mkdirsignifica ” 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 -Fcreatures/ data/ molecules/ north-pacific-gyre/ notes.txt pizza.cfg solar.pdf thesis/ writing/Dal momento che abbiamo appena creato il
thesisdirectory, non c’è niente in esso ancora:$ ls -F thesissi noti che
mkdirnon è limitato alla creazione di un’unica directory, uno alla volta.-popzione permette dimkdirper creare una directory con qualsiasi numero di nidificati sottodirectory in una singola operazione:$ mkdir -p thesis/chapter_1/section_1/subsection_1
-Ropzionelscomando elencherà tutti nidificato sottocartelle all’interno di una directory. Usiamols -FRper 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
thesisusocd,quindi eseguire un editor di testo chiamato Nano per creare un file chiamatodraft.txt:$ cd thesis$ nano draft.txtQuale 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 chiamatonotepadche può essere eseguito dalla riga di comando nello stesso modo comenanoper 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-XControl+XCtrl-XCtrl+X^XC-xnano, lungo la parte inferiore dello schermo si vedrà
^G Get Help ^O WriteOut.Ciò significa che puoi usareControl-Gper ottenere aiuto eControl-Oper salvare il tuo file.
nanonon lascia alcun output sullo schermo dopo che esce,malsmostra ora che abbiamo creato un file chiamatodraft.txt:$ lsdraft.txtCreazione di File di un Modo Diverso
Abbiamo visto come creare file di testo utilizzando il
nanoeditor.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 -lper ispezionare i file. Quanto è grandemy_file.txt?Quando potresti voler creare un file in questo modo?
Soluzione
Il comando
touchgenera un nuovo file chiamatomy_file.txtnella directory corrente. Puoi osservare questo file appena generato digitandolsal prompt della riga di comando.my_file.txtpuò 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.txtusando 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 filemythesisoquasi 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:.txtsegnali 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.mp3non 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-shelldirectory,cd ~/Desktop/data-shell/il
thesisdirectory in cui si dispone di un filedraft.txtche non è un particolare nome informativo,proviamo a cambiare il nome del file utilizzandomvche è l’abbreviazione di ‘spostare’:$ mv thesis/draft.txt thesis/quotes.txtIl primo argomento indica
mvquello che siamo ‘in movimento’,mentre la seconda è dove andare.In questo caso,stiamo spostandothesis/draft.txtathesis/quotes.txt,che ha lo stesso effetto di rinominare il file.Abbastanza sicuro, illsci mostra chethesisora contiene un file chiamatoquotes.txt:$ ls thesisquotes.txtsi deve prestare attenzione quando si specifica il nome del file di destinazione, in quanto
mvwillsilently 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
mvfunziona anche sulle directory.Spostiamo
quotes.txtnella directory di lavoro corrente.Usiamo ancora una voltamv, ma questa volta useremo solo il nome di una directory come secondo argomentoper dire amvche 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.
lsora ci mostra chethesisè vuoto:$ ls thesisInoltre,
lscon 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.txtquotes.txtSpostare i File in una nuova cartella
Dopo aver eseguito i seguenti comandi Jamie si rende conto che ha messo il file
sucrose.datemaltose.datnella 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 analyzedRiempire 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 ../rawRicordiamo 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
cpfunziona molto comemv, tranne che copia un file invece di spostarlo.Possiamo verificare che abbia fatto la cosa giusta usandolscon due percorsi come argomenti-come la maggior parte dei comandi Unix,lspuò essere dato più percorsi contemporaneamente:$ cp quotes.txt thesis/quotations.txt$ ls quotes.txt thesis/quotations.txtquotes.txt thesis/quotations.txtSi 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_backupSiamo in grado di controllare il risultato, che elenca i contenuti di entrambi i
thesisethesis_backupdirectory:$ ls thesis thesis_backupthesis:quotations.txtthesis_backup:quotations.txtla 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.txtDopo 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.txtmv statstics.txt statistics.txtmv 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
lsnella sequenza mostrata di seguito?$ pwd/Users/jamie/data$ lsproteins.dat$ mkdir recombined$ mv proteins.dat recombined/$ cp recombined/proteins.dat ../proteins-saved.dat$ ls
proteins-saved.dat recombinedrecombinedproteins.dat recombinedproteins-saved.datSolution
We start in the
/Users/jamie/datadirectory, and create a new folder calledrecombined.La seconda riga sposta (mv) il fileproteins.datnella 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.datsi trova a/Users/jamie- Sì
- No, vedere la spiegazione sopra.
proteins.datsi trova a/Users/jamie/data/recombined- No, vedere la spiegazione sopra.
proteins-saved.dat/Users/jamiela Rimozione di file e directory
Ritorno
data-shelldirectory,proviamo a riordinare questa directory rimuovendo ilquotes.txtfile che abbiamo creato.Il comando Unix che useremo per questo èrm(abbreviazione di ‘rimuovere’):$ rm quotes.txtPossiamo confermare che il file è andato con
ls:$ ls quotes.txtls: cannot access 'quotes.txt': No such file or directoryla 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'? yL’opzione
-ichiederà 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
thesiscartellarm thesis,si ottiene un messaggio di errore:$ rm thesisrm: cannot remove `thesis': Is a directoryQuesto accade perché
rmper impostazione predefinita funziona solo su file, non di directory.
rmpuò rimuovere una directory e tutti i suoi contenuti se usiamo l’opzione corsiva-r, e lo farà senza alcuna richiesta di conferma:$ rm -r thesisDato che non c’è modo di recuperare i file eliminati utilizzando la shell,
rm -rdovrebbe 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
cpquando 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
cpquando vengono assegnati tre o più nomi di file?$ ls -Famino-acids.txt animals.txt backup/ elements/ morse.txt pdb/ planets.txt salmon.txt sunspot.txt$ cp amino-acids.txt animals.txt morse.txtSoluzione
Se il dato più di un nome di file seguito da un nome di directory (cioè la directory di destinazione va l’ultimo argomento),
cpcopia i file nella directory con nome.Se vengono dati tre nomi di file,
cpgenera un errore come quello qui sotto, perché si aspetta un directoryname come ultimo argomento.cp: target ‘morse.txt’ is not a directoryUsing wildcards for accessing multiple files at once
Wildcards
*is a wildcard, which matches zero or more characters.Let’s consider thedata-shell/moleculesdirectory:*.pdbmatchesethane.pdbpropane.pdb, and everyfile that ends with ‘.pdb’. D’altra parte,p*.pdbcorrisponde solo apentane.pdbepropane.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.pdbsarebbe partitamethane.pdbmentre*ethane.pdbcorrisponde aethane.pdbemethane.pdb.I caratteri jolly possono essere utilizzati in combinazione tra loro.g.
???ane.pdbcorrisponde 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 *.pdfnella directorymolecules(che contiene solo file con nomi che terminano con.pdb) si ottiene un messaggio di errore che indica che non esiste alcun file chiamatowcelsvedono 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, chelswillproduce questo output?
ethane.pdb methane.pdb
ls *t*ane.pdbls *t?ne.*ls *t??ne.pdbls 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.pdbepentane.pdbma non corrisponde a nulla che termina inthane.pdb.
risolve i problemi dell’opzione 2 facendo corrispondere due caratteri (??) tratene. Questa è la soluzione.
mostra solo i file che iniziano conethane..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_filesPrima 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.txtSoluzione
$ 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 -Fanalyzed/ fructose.dat raw/ sucrose.dat
fructose.datesucrose.datfile 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 -Fanalyzed/ raw/$ ls analyzedfructose.dat sucrose.datSolution
mv *.dat analyzedJamie needs to move her files
fructose.datandsucrose.datto theanalyzeddirectory.The shell will expand *.dat to match all .dat files in the current directory.Themvcommand 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
datache a sua volta contiene cartelle denominateraweprocessedche contengono file di dati. L’obiettivo è copiare la struttura della folder della cartella2016-05-18-datain una cartella chiamata2016-05-20in modo che la struttura della directory finale sia simile a questa:2016-05-20/└── data ├── processed └── rawQuale 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 processedSoluzione
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
mkdirnon 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ì chemkdircrei qualsiasi sottodirectory intermedia come richiesto.Il set finale di comandi genera le directory ‘raw’ e ‘processed’ allo stesso livello della directory ‘data’.
Punti chiave
cpcopia un file.
mkdircrea una nuova directory.
mvsposta (rinomina) un file o una directory.
rmrimuove (elimina) un file.
*corrisponde a zero o più caratteri in un nome di file, quindi*.txtcorrisponde a tutti i file che terminano in.txt.
?corrisponde a qualsiasi singolo carattere in un nome di file, quindi?.txtcorrisponde aa.txtma nonany.txt.L’uso del tasto Control può essere descritto in molti modi, tra cui
Ctrl-XControl-Xe^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