Shell: Parte 1

Spostarsi nel Filesystem

comando funzione opzioni principali
pwd stampa la directory corrente -l, -h, -t, -S
ls elenca i file in una directory -l
cd cambia la directory corrente -
mv sposta o rinomina un file/directory -i, -f
cp copia un file/directory -i, -f, -r
rm rimuove un file/directory -i, -f, -r
mkdir crea una o piu’ directory -p

I comandi qui sopra spostano o copiano file, ma non modificano i contenuti degli stessi.

Esempio. Se non sapete dove vi trovate, potete usare cd senza argomenti per tornare alla vostra home.


Wildcards, Parte 1

La shell esegue quella che si chiama wildcard expansion: ogni volta che incontra l’asterisco * lo sostituisce con la lista dei file/directory che “fanno match”.

Esempio. Se eseguo:

ls *

la shell sostituisce * con la lista di tutti i file e le directory nella directory attuale (perche’ tutti fanno match con *). Invece:

ls ~/informatica/*

sostituisce * con la lista dei file in ~/informatica.

Supponendo che in ~/informatica ci siano solo tre file, chiamati test1, test2 e results, il comando precedente sarebbe equivalente a:

ls ~/informatica/test1 ~/informatica/test2 ~/informatica/results

Se avessi eseguito:

ls ~/informatica/test*

la wildcard test* avrebbe fatto match solo con test1 e test2, ed il comando sarebbe stato equivalente a:

ls ~/informatica/test1 ~/informatica/test2

Qui results non fa match, quindi non viene incluso.


Esercizi

  1. Cosa fa ls data/prot-fasta data/prot-pdb? Confrontalo con ls data/prot-fasta e ls data/prot-pdb per conferma.

  2. Cosa fa ls se gli si passa un path ad un file piuttosto che ad una directory? E ls -l?

  3. Cosa fa ls se gli si passa path misti a file e directory?

  4. Che differenza c’e’ tra:
    1. cd . e cd ..?
    2. cd .. e cd..?
    3. ls e ls .?
    4. ls e ls *? Perche’?
    5. ls -l -h e ls -lh?
    6. ls -l e ls - l?
  5. Il risultato di ls ../* “include” il risultato di ls .?

  6. Che differenza c’e’ tra ls /home/login.utente/bio e ls ../login.utente/bio se pwd e’ ~?

  7. Il file data/empty1 e’ vuoto? E il file data/empty2?

  8. Cosa fa il comando (alcuni dei comandi seguenti possono non funzionare; scopo dell’esercizio e’ scoprire perche’; partite sempre da una directory vuota):
    1. mkdir muu/bee?
    2. mkdir -p muu/bee/grr; rm muu/bee/grr?
    3. mkdir -p muu/bee/grr; rm -r muu/bee?
    4. mkdir muu; cd .; mkdir muu?
    5. mkdir muu; cd .; mkdir -p muu?
    6. Il comando rm -r muu/bee rimuove anche la directory muu?
  9. Stampare la lista dei file contenute nelle directory data/deep0, data/deep1, ..., data/deep4.

  10. Stampare la lista di tutti i file, inclusi quelli nelle sotto-directory.