Comment changer des permissions récursivement?

Assez souvent, je suis confronté à ce problème, par exemple, après avoir déplacé un dossier complet depuis une partition windows ou un CD. Quand on fait ce genre d'opération, toutes les permissions attribuées aux fichiers sont perdues et ils se retrouvent tous en accès libre et exécutables, pour le monde entier...

La question est simple: comment rendre tous ces fichiers en mode -rw------- (lecture et écriture pour le propriétaire seulement) et tous les dossiers en drwx------ (lecture, écriture et éxécution pour le propriétaire seulement) sans passer dans les dossiers un par un?

En fait, il suffit de quelques commandes, mais j'ai mis un moment à les trouver:

# cherche tous les dossiers (récursivement), et donne la
# permission d'exécution, lecture et écriture au propriétaire
find ./ -type d -exec chmod u+rwx {} ;
# cherche tous les dossiers (récursivement), et retire la permission
# d'exécution, lecture et écriture aux membres du groupe et reste du monde
find ./ -type d -exec chmod og-rwx {} ;
# cherche tous les fichiers (récursivement), et donne la permission
# de lire et écrire mais pas exécuter au propriétaire
find ./ -type f -exec chmod u+wr-x {} ;
# cherche tous les fichiers (récursivement) et retire tous les droits
# aux membres du groupe et reste du monde
find ./ -type f -exec chmod og-rwx {} ;

C'est tout!
09/2003
Edité et reformaté 12/2005