Advertisement
rodolforizzo76

order_home_folder

Jun 27th, 2018
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.24 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. ## script per ripulire la home da tutti i file che, tuo malgrado, col tempo si accumulano
  4. ## i file non vengono eliminati ma archiviati in una cartella chiamata Archivio
  5. ## la cartella archivio contiene altre cartelle, una per ogni tipo di file
  6. ## per esempio questa è la struttura della directory archivio usata per questo script:
  7.  
  8. ## Archivio
  9. ## ├── Documenti
  10. ## ├── Immagini
  11. ## ├── Musica
  12. ## ├── Scripts
  13. ## └── Videos
  14.  
  15. ## Controllo se esiste la struttura della directory Archivio e se non esiste la creo
  16. if [ ! -d ~/Archivio ]; then
  17.   mkdir -p Archivio/{Documenti,Immagini,Musica,Scripts,Videos};
  18. fi
  19.  
  20. ## dichiaro le variabili come "vettori", cioè una variabili che contiene più variabili
  21. config[0]="image/::/home/rodolfo/Archivio/Immagini";
  22. config[1]="video/::/home/rodolfo/Archivio/Videos";
  23. config[2]="audio/::/home/rodolfo/Archivio/Musica";
  24. config[3]="application/pdf::/home/rodolfo/Archivio/Documenti";
  25. config[4]="text/x-shellscript::/home/rodolfo/Archivio/Scripts";
  26. config[5]="text/plain::/home/rodolfo/Archivio/Documenti";
  27.  
  28. ## inizio un ciclo for
  29. ## Questo ciclo si eseguirà per ogni elemento che abbiamo inserito nel vettore config
  30. ## assegnando di volta in volta il valore del singolo elemento alla variabile confline.
  31. for confline in "${config[@]}"; do
  32.     mimetype=$(echo $confline | cut -d':' -f1);
  33.     extension=$(echo $confline | cut -d':' -f2);
  34.     destination=$(echo $confline | cut -d':' -f3);
  35.    
  36.     ## utilizziamo una subshell $() per eseguire un comando echo dell'elemento di configurazione
  37.     ## recuperando tramite cut i 3 parametri di configurazione che ci interessano.
  38.     file --mime-type * | grep "${mimetype}" | grep "${extension}:" | while read line; do
  39.    
  40.         ## si recupera dalla riga dell'elenco il nome del file
  41.         ## solo (la porzione che precede i due punti)
  42.         nomefile=$(echo $line | cut -d':' -f1);
  43.        
  44.         ## elimino gli spazi vuoti eventualmente presenti nel nome del file
  45.         ## sostituendoli con degli underscore
  46.         ## diversamente si avrebbero problemi nello spostamento del file
  47.         nuovo_nome=`echo $nomefile | sed "s/ /_/g"`
  48.        
  49.         ## rinomino il file originale assegnando il nuovo nome senza spazi vuoti
  50.         ## infine effettuo lo spostamento nella cartella appropriata
  51.         mv "$nomefile" "$nuovo_nome"
  52.         mv -v ${nuovo_nome} ${destination}/${nuovo_nome};
  53.     done
  54. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement