Bash – Operazioni massive su files

Spesso in linux è necessario effettuare operazioni massiv, frequentemente  mi trovo a dover cancellare o spostare files.

Ecco quindi un paio di script che fanno tutto il lavoro sporco:

Cancellazione di files:

find . -name "*.bak" -exec rm {} \;

Cancellazione (o spostamento) di files:

find . -name "*.avi" -print0 | xargs -I{} -0 mv -v {} ./myAVI

Non avete capito il trucco ? L’occasione buona per utilizzare il comando man !!!

Annunci

Eliminare gli spazi dai nomi dei files

Qualche volta è utile poter rinominare i files in modo da eliminare gli spazi che mal vengono digeriti da alcune procedure.

Ecco quindi un veloce script che ci consente di rinominare i files in un colpo solo

find . -depth -name "* *" -execdir rename 's/ /_/g' "{}" \;

L’idea alla base è molto semplice: Cercando tutti i file (comando find), a partire dalla directory corrente (.) che hanno un nome tipo “qualsiasi cosa + spazio + qualsiasi cosa” (quindi almeno uno spazio) eseguire su di essi il comando rename che tramite una regular expression sostituisce tutte le occorrenze del carattere spazio con il carattere underscore.