Home
Fare il touch ricorsivo nella shell bash PDF Stampa E-mail
GNU/Linux - Tips 'n Tricks
Scritto da P. Russo   
Mercoledì 24 Giugno 2009 20:04

Quando con Linux si ottengono degli errori per date future o non valide dei file, può risultare utile questo comando che aggiorna tutte le date di accesso dei file.

Per effettuare il touch ricorsivo di tutti i file di una directory, aggiornando così la data di ultima lettura, basta lanciare:

find . -print0 | xargs -0 touch

Di seguito analizzati in dettaglio i vari comandi con i parametri utilizzati.

 

  • find serve per ricercare file o directory nel file system, col punto " . " si indica la posizione corrente.

  • L'azione -print0 stampa l'intero nome del file sullo standard output seguito da un carattere null (-print senza 0 li stampa su una nuova riga). Questo permette ai programmi concatenati successivamente ( tramite | ) di interpretare correttamente i nomi che contengono spazi bianchi.

  • Il simbolo " | ", chiamato operatore pipe, serve per concatenare lo standard output di un programma con lo standard input dell'altro.

  • xargs legge i dati dallo standard input e li inserisce come parametri ad un altro comando, l'opzione -0 serve per indicare che le varie stringhe sono separate da un carattere null.

  • touch permette di impostare la data e ora di ultima modifica e/o di ultimo accesso dei file.


Quindi come prima cosa find manda in output i nomi di tutti i file, dalla posizione corrente in poi all'interno dell'albero delle directory a partire da quella corrente, separati dal carattere null, questi grazie a xarg verranno dati come parametro a touch uno alla volta che imposterà la data e ora di ultima modifica e accesso. 

Ultimo aggiornamento Venerdì 26 Giugno 2009 11:31
 

Utenti connessi

 14 visitatori online



Creative Commons License

Questo sito è pubblicato sotto licenza Creative Commons
DeSfA - De Shell Facemmo Ali