Il modo più semplice per eseguire in modo ricorsivo dos2unix
in un'intera directory consiste semplicemente nell'eseguire il comando find
per ogni file trovato in base ai criteri.
Ad esempio, per trovare tutti i file (esclusi i nomi delle directory) nella directory corrente e tutte le sue sottodirectory e hanno dos2unix
eseguire la conversione di default su ciascuno di questi file:
find . -type f -exec dos2unix -k -s -o {} ';'
Questo stamperà ogni nome file singolo, ma non necessariamente cambia ciascuno di essi. Questo funziona come segue:
find .
: Trova nulla in questa directory, incluse le sottodirectory, e nulla in quelle che si trovano pure (ricorsione)
-type f
: restituire solo nomi "regolari dei file. Escludi i nomi delle cartelle dai risultati.
-exec
: Esegui il seguente comando per ogni risultato. Tutto ciò che va oltre questo punto dovrebbe essere trattato come parte di quel comando finché non viene trovato il carattere ;
.
dos2unix
: dos2unix
sarà eseguita con le seguenti opzioni ...
-k
: Mantenere il timbro data del file di output lo stesso del file di input
-s
: Salta i file binari (immagini, archivi, ecc.) Questa opzione è inclusa per impostazione predefinita, ma la utilizzo comunque nel caso in cui l'impostazione predefinita fosse diversa su alcuni sistemi (ad esempio OS X v. Debian v. CentOS v. Ubuntu v. ...).
-o
: scrivere le modifiche direttamente nel file, anziché creare un nuovo file con i dati nel nuovo formato.
{}
: questo indica a find
di inserire il nome file trovato come parametro della chiamata dos2unix
.
';'
: indicare find
che i parametri per dos2unix
sono terminati. Tutto ciò che va oltre questo punto sarà di nuovo trattato come un parametro di find
.
Si prega di non perpetuare [questa pratica orrenda] (http://mywiki.wooledge.org/BashPitfalls#for_i_in_.24.28ls_.2A.mp3.29) errori come questo. Ciò fallirà per i file con caratteri speciali e potrebbe essere potenzialmente dannoso per il tuo sistema. Se vuoi la ricorsione e stai usando bash, usa 'globstar'. Se non usi bash, usa 'find ... -exec'. Ma non questo, * per favore *. – ghoti