Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ## script per ripulire la home da tutti i file che, tuo malgrado, col tempo si accumulano
- ## i file non vengono eliminati ma archiviati in una cartella chiamata Archivio
- ## la cartella archivio contiene altre cartelle, una per ogni tipo di file
- ## per esempio questa è la struttura della directory archivio usata per questo script:
- ## Archivio
- ## ├── Documenti
- ## ├── Immagini
- ## ├── Musica
- ## ├── Scripts
- ## └── Videos
- ## Controllo se esiste la struttura della directory Archivio e se non esiste la creo
- if [ ! -d ~/Archivio ]; then
- mkdir -p Archivio/{Documenti,Immagini,Musica,Scripts,Videos};
- fi
- ## dichiaro le variabili come "vettori", cioè una variabili che contiene più variabili
- config[0]="image/::/home/rodolfo/Archivio/Immagini";
- config[1]="video/::/home/rodolfo/Archivio/Videos";
- config[2]="audio/::/home/rodolfo/Archivio/Musica";
- config[3]="application/pdf::/home/rodolfo/Archivio/Documenti";
- config[4]="text/x-shellscript::/home/rodolfo/Archivio/Scripts";
- config[5]="text/plain::/home/rodolfo/Archivio/Documenti";
- ## inizio un ciclo for
- ## Questo ciclo si eseguirà per ogni elemento che abbiamo inserito nel vettore config
- ## assegnando di volta in volta il valore del singolo elemento alla variabile confline.
- for confline in "${config[@]}"; do
- mimetype=$(echo $confline | cut -d':' -f1);
- extension=$(echo $confline | cut -d':' -f2);
- destination=$(echo $confline | cut -d':' -f3);
- ## utilizziamo una subshell $() per eseguire un comando echo dell'elemento di configurazione
- ## recuperando tramite cut i 3 parametri di configurazione che ci interessano.
- file --mime-type * | grep "${mimetype}" | grep "${extension}:" | while read line; do
- ## si recupera dalla riga dell'elenco il nome del file
- ## solo (la porzione che precede i due punti)
- nomefile=$(echo $line | cut -d':' -f1);
- ## elimino gli spazi vuoti eventualmente presenti nel nome del file
- ## sostituendoli con degli underscore
- ## diversamente si avrebbero problemi nello spostamento del file
- nuovo_nome=`echo $nomefile | sed "s/ /_/g"`
- ## rinomino il file originale assegnando il nuovo nome senza spazi vuoti
- ## infine effettuo lo spostamento nella cartella appropriata
- mv "$nomefile" "$nuovo_nome"
- mv -v ${nuovo_nome} ${destination}/${nuovo_nome};
- done
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement