Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres systèmes > Unix

Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix

Réponse
 
Outils de la discussion
Vieux 03/11/2008, 14h47   #1 (permalink)
Invité de passage
 
Date d'inscription: novembre 2008
Messages: 3
Par défaut Newbie: KSH et rm récursif sur fichier cachés

Bonjour à tous,

Une question idiote:
Soit l'arborescence suivante :

/toto
/toto/dir1
/toto/dir2
/toto/dir3

un rm -R /toto supprime /toto/dir1, /toto/dir2, /toto/dir3, mais refuse la suppression de /toto sous le prétexte que /toto n'est pas vide.

En effet, il reste des fichiers de type ".profile", ".websm", etc (je suis sous AIX 5.3).

Ma question est la suivante:
Pourquoi un rm * sous /toto n'arrive pas non plus à supprimer ces fichiers protégés. Est ce une particularité du ksh, ou sous bash a t'on le même pb ?

Question subsidiaire: à moins d'un boucle "for" pipée sur un "ls -al", quelle option du rm permet de virer ces foutus fichiers cachés ? J'ai fait un man, Nada.
Le seul tips que j'ai trouvé concerne les regexp.
Du style rm .[a-zA-Z0-9]*

Merci pour vos réponses !
J.Ph.

Dernière modification par kaskooye ; 03/11/2008 à 16h12
kaskooye est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/11/2008, 21h52   #2 (permalink)
Membre éprouvé
 
Avatar de jlliagre
 
Date d'inscription: juin 2007
Localisation: Paris
Messages: 434
Par défaut

Citation:
Envoyé par kaskooye Voir le message
un rm -R /toto supprime /toto/dir1, /toto/dir2, /toto/dir3, mais refuse la suppression de /toto sous le prétexte que /toto n'est pas vide.
Essaie:
Code :
rm -rf /toto
Citation:
En effet, il reste des fichiers de type ".profile", ".websm", etc (je suis sous AIX 5.3).
Il n'y a pas de raison que ces fichiers ne soient pas effacés, sauf si les droits d'accès l'interdisent ou peut-être si /toto est ton répertoire courant.
Citation:
Pourquoi un rm * sous /toto n'arrive pas non plus à supprimer ces fichiers protégés. Est ce une particularité du ksh, ou sous bash a t'on le même pb ?
C'est le fonctionnement attendu et donc normal. "*" n'inclut pas les fichiers cachés.
Citation:
Question subsidiaire: à moins d'un boucle "for" pipée sur un "ls -al", quelle option du rm permet de virer ces foutus fichiers cachés ? J'ai fait un man, Nada.
Le seul tips que j'ai trouvé concerne les regexp.
Du style rm .[a-zA-Z0-9]*
Tu peux effacer les fichiers cachés (sauf ceux du type .x) avec cette commande plus simple:
Code :
rm .??*
jlliagre est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/11/2008, 10h59   #3 (permalink)
Invité de passage
 
Date d'inscription: novembre 2008
Messages: 3
Par défaut Merci jlliagre

Précision, je n'étais pas positionné sous /toto lors du rm.
Je vais essayer l'option F comme indiqué rm -RF /toto

Par contre, j'ai eu des soucis avec un rm récursif et la notation ".*"...
Explication : sous chaque sous répertoire, on retrouve . et .. indiquant le répertoire courant et le père.

Le piège à c.., c'est que dans le cas d'un rm -R .* , ça remonte le rm, jusqu'au niveau / !!! Attention les dégâts

J'ai bien peur que rm -R .??* ne fasse la même chose

Merci en tout cas de ta réponse
kaskooye est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/11/2008, 13h31   #4 (permalink)
Membre éprouvé
 
Avatar de jlliagre
 
Date d'inscription: juin 2007
Localisation: Paris
Messages: 434
Par défaut

Citation:
Envoyé par kaskooye Voir le message
Précision, je n'étais pas positionné sous /toto lors du rm.
Je vais essayer l'option F comme indiqué rm -RF /toto
Ne mélange pas minuscules et majuscules. J'ai suggéré "rm -rf ..", pas "rm -RF .." (-F n'est pas POSIX).
Citation:
Par contre, j'ai eu des soucis avec un rm récursif et la notation ".*"...
Explication : sous chaque sous répertoire, on retrouve . et .. indiquant le répertoire courant et le père.
Je n'ai pas non plus suggéré d'utiliser un rm récursif sur .* .
Citation:
Le piège à c.., c'est que dans le cas d'un rm -R .* , ça remonte le rm, jusqu'au niveau / !!! Attention les dégâts
Ca ne remonte qu'au répertoire parent, mais il s'agit en effet de / dans ton exemple.
Citation:
J'ai bien peur que rm -R .??* ne fasse la même chose
Non, puisque "." et ".." ne sont pas pris en compte par ".??*" qui impose que le nom doit faire au moins 3 caractères.
jlliagre est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 19/11/2008, 14h07   #5 (permalink)
Invité de passage
 
Date d'inscription: novembre 2008
Messages: 3
Par défaut Avec bien du retard...

..merci pour ces compléments de réponse. !!!
Cordialement,
J.Ph.
kaskooye est déconnecté   Envoyer un message privé Réponse avec citation
NEWS LINUX PROFESSIONNELFAQ LINUXTUTORIELS LINUXLIVRES LINUXLINUX TVUNIXGTK+QtAPACHE

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres systèmes > Unix



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide