Autore |
Discussione  |
|
Ivan86
Utente Capoeirista
 

Regione: Puglia
Prov.: Bari
Città: Bitritto
|
Inserito il - 06/11/2009 : 16:40:57
|
Salve. Qualcuno che ha sostenuto l'appello di laboratorio del 3 settembre sa aiutarmi? non riesco a capire bene che vuole la traccia. Eccola:
Costruire uno script bash (orderby) che permetta la gestione dei file, contenuti all'interno della Current Working Directory, aventi in comune l'estensione. Lo script dovrà verificare che vengano forniti in input due parametri (nome_funzione par1 par2), il primo indicherà l'estensione del file da gestire mentre il secondo indicherà la cartella di destinazione dove dovranno essere spostati i file individuati. (orderby par1 par2) Ogni file presente nella cwd con l'estensione par1 deve essere spostata nella directory par2. Se entrambi, o almeno uno dei parametri, non verranno immessi, lo script gestirà le seguenti estensioni spostando i file riconosciuti nelle seguenti cartelle
pdf /home/documenti/pdf jpg /home/documenti/foto avi /home/documenti/video mp3 /home/documenti/audio o - orderby jpg /home/Documenti/Foto - orderby avi /home/Documenti/Video - orderby pdf /home/Documenti/Pdf - orderby mp3 /home/Documenti/Musica
perchè parla di parametri e quindi di funzione? Non basterebbe fare una read sul formato di file (*.txt) e sulla cartella di destinazione e poi fare una "mv file dir" ?
|



 |
|
Mauro84
Utente medio
 

Regione: Puglia
Prov.: Bari
|
Inserito il - 06/11/2009 : 23:18:30
|
Peccato ho formattato e non mi ritrovo la soluzione che ho consegnato. In pratica lo script bash deve gestire due tipi di casi: 1)se richiamo lo script con "(nome_funzione par1 par2)" da linea di comando, par1 indica il tipo file (es. jpg,avi,pdf,mp3), mentre par2 indica la cartella di destinazione, dove i file contenuti in CWD del tipo specificato da "par1" verrano spostati. 2)se richiamo lo script e non immetto "par2" ossia non indico nessuna destinazione in cui verrano spostati i file della CWD omogenei rispetto al tipo, allora di default li sposto in /home/documenti/pdf per i pdf /home/documenti/foto per i jpg /home/documenti/video per gli avi /home/documenti/audio per gli mp3
perche si parla di parametri? Proprio perchè questo spostamento deve essere dinamico ossia parametrizzato in base alle destinazioni ed ai tipi di file. Perchè si parla di funzione? (non ti far ingannare nome_funzione è l'orderBy ossia il tuo script che stai creando e che lo richiamo quando vuoi).
|
 |
|
Ivan86
Utente Capoeirista
 

Regione: Puglia
Prov.: Bari
Città: Bitritto
|
Inserito il - 07/11/2009 : 11:09:26
|
ok. Grazie Mauro.
All'inizio avevo capito di dover chiedere all'utente cosa voler spostare e quindi avevo pensato di utilizzare la read per prelevare formato e destinazione.
|



 |
 |
|
Ivan86
Utente Capoeirista
 

Regione: Puglia
Prov.: Bari
Città: Bitritto
|
Inserito il - 07/11/2009 : 11:16:47
|
Però non mi è chiara una cosa adesso.
1) se io gli passo solo il primo parametro, e ad esempio scrivo "pdf", automaticamente devo far spostare tutti i *.pdf in /home/Documenti/pdf.
2) se non metto nessuno dei 2 parametri, automaticamente devo far spostare tutti i file di tipo pdf,jpg,avi,mp3 nelle cartelle apposite.
Giusto?
|



 |
Modificato da - Ivan86 in data 07/11/2009 11:17:42 |
 |
|
wiklex
Utente medio
 

|
|
WonderBoy
Utente giovane

Città: UK
|
Inserito il - 10/11/2009 : 10:28:22
|
Lo scrivo in pseudo codice perchè non ricordo la sintassi perchè devo rivedermela...
#!bin/bash if ($1 != NULL) && ($2 != NULL) for $file in ls($PWD) do //leggo il formato del file leggendo le ultime tre lettere e se uguale //al parametro 1 sposto nella directory immessa come parametro 2 [$file,-3]=='$1' && mv $file $2 done else for $file in ls($PWD) do //leggo il formato del file e se uguale ad avi sposto in Video e così via... [$file,-3]=='avi' && mv in DIRVIDEO [$file,-3]=='jpg' && mv in DIRIMMAGINI .... .... done fi |
 |
|
|
Discussione  |
|