OVH Cloud OVH Cloud

suppression fichiers, shell

10 réponses
Avatar
Rakotomandimby (R12y) Mihamina
Bonjour

J'ai des fichiers recalcitrants dans un repertoire.

[...]
froogle?q=digital+camcorder+store:tweeter&cat=433&filter=0&scoring=p
froogle?q=digital+camcorder+store:tweeter&cat=433&filter=0&scoring=pd
froogle?q=digital+camcorder+store:tweeter&cat=433&filter=0&tiled=1
froogle?q=digital+camcorder+store:ubid&cat=433&filter=0
froogle?q=digital+camcorder+store:walmart&cat=433&filter=0
[...]
merchratings?store=cabelas&q=digital+camcorder
merchratings?store=hsn&q=digital+camcorder


Il y en a 70 000 comme ça, ça prend de la place.
En ZSH, un 'rm -rf *' ne les enleve pas.

Si je remonte et que je supprime le repertoire qui contient ces fichers,
alors le repertoire ne peut se faire supprimer car non-vide.

Est-ce que c'est dû a des char spéciaux dans les noms de fichiers?
lesquels?


--
Les serveurs avec 10Mb/s se louent maintenant pour 50 ou 60 Euros par mois!
La preuve http://www.google.fr/search?q=serveur+dedie
Infogerance de serveur dedie http://aspo.rktmb.org/activites/infogerance
(En louant les services de l'ASPO vous luttez contre la fracture numerique)

10 réponses

Avatar
Rakotomandimby (R12y) Mihamina
( Fri, 01 Apr 2005 14:00:46 +0200 ) Rakotomandimby (R12y) Mihamina :

Il y en a 70 000 comme ça, ça prend de la place.
En ZSH, un 'rm -rf *' ne les enleve pas.


Alors il va de soi que vu strictement dans ce sens ça ne marche pas,
parceque la liste d'argument est trop longue pour 'rm'.

En réalité je tente l'effacement avec

$ for FICHIER (*) (rm -rf "${FICHIER}")

--
Les serveurs avec 10Mb/s se louent maintenant pour 50 ou 60 Euros par mois!
La preuve http://www.google.fr/search?q=serveur+dedie
Infogerance de serveur dedie http://aspo.rktmb.org/activites/infogerance
(En louant les services de l'ASPO vous luttez contre la fracture numerique)

Avatar
Paul Gaborit
À (at) Fri, 01 Apr 2005 14:15:58 +0200,
"Rakotomandimby (R12y) Mihamina" écrivait (wrote):
( Fri, 01 Apr 2005 14:00:46 +0200 ) Rakotomandimby (R12y) Mihamina :

Il y en a 70 000 comme ça, ça prend de la place.
En ZSH, un 'rm -rf *' ne les enleve pas.


Alors il va de soi que vu strictement dans ce sens ça ne marche pas,
parceque la liste d'argument est trop longue pour 'rm'.

En réalité je tente l'effacement avec

$ for FICHIER (*) (rm -rf "${FICHIER}")


Et ça ne marche pas plus... le (*) doit être expansé !

Pour effacer tout un répertoire *et* son contenu :

rm -r repertoire

Pour effacer tous les fichiers du répertoire (et de ses sous-répertoires) par
groupe ne dépassant pas la taille limite d'une ligne de commande, on peut
utiliser 'find' et 'xargs':

find repertoire -type f -print0 | xargs -0 rm

--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>


Avatar
Laurent Wacrenier
Paul Gaborit écrit:
Pour effacer tous les fichiers du répertoire (et de ses sous-répertoires) par
groupe ne dépassant pas la taille limite d'une ligne de commande, on peut
utiliser 'find' et 'xargs':

find repertoire -type f -print0 | xargs -0 rm


Sur un BSDi ou la structure dirent ne pouvait même plus être ouverte
tellement il y avait de fichiers, j'ai dû faire un

strings . | xargs rm

(à n'utiliser qu'en désespoir de cause)

Avatar
Rakotomandimby (R12y) Mihamina
( Fri, 01 Apr 2005 14:35:33 +0200 ) Paul Gaborit :

Et ça ne marche pas plus... le (*) doit être expansé !


Ca marchai avec avec des fichiers (centaines de milliers) au nom moins
exotique. Il reste ces 70 000 fichiers au sale nom.

D'après moi, ce n'est pas un problème de "quantité d'argument",
parceque les centaines de milliers de fichiers au nom normal sont
bel et bien partis.

Il reste ces quelques fichiers recalcitrants.

Pour effacer
tout un répertoire *et* son contenu



rm -r repertoire


Oui je sais encore effacer un repertoire.
Mais je le faisai avec '-rf' ç'était plus hard.

Là, un truc qui m'intrigue, c'est qu'avec '-rf' il me disait que le
repertoire n'était pas vide donc innéffaçable.

En désespoir de cause, j'ai fait comme tu l'as dit: j'ai juste mis
l'option '-r', et pas le 'f', et le repertoire est parti. Si tu as une
explication...


--
Les serveurs avec 10Mb/s se louent maintenant pour 50 ou 60 Euros par mois!
La preuve http://www.google.fr/search?q=serveur+dedie
Infogerance de serveur dedie http://aspo.rktmb.org/activites/infogerance
(En louant les services de l'ASPO vous luttez contre la fracture numerique)

Avatar
Paul Gaborit
À (at) Fri, 1 Apr 2005 12:54:16 +0000 (UTC),
Laurent Wacrenier <lwa@ teaser . fr> écrivait (wrote):
Sur un BSDi ou la structure dirent ne pouvait même plus être ouverte
tellement il y avait de fichiers, j'ai dû faire un

strings . | xargs rm

(à n'utiliser qu'en désespoir de cause)


Excellent !
(il faut tout de même être root pour avoir le droit de le faire...)

--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>

Avatar
Paul Gaborit
À (at) Fri, 01 Apr 2005 14:59:16 +0200,
"Rakotomandimby (R12y) Mihamina" écrivait (wrote):
Oui je sais encore effacer un repertoire.
Mais je le faisai avec '-rf' ç'était plus hard.

Là, un truc qui m'intrigue, c'est qu'avec '-rf' il me disait que le
repertoire n'était pas vide donc innéffaçable.

En désespoir de cause, j'ai fait comme tu l'as dit: j'ai juste mis
l'option '-r', et pas le 'f', et le repertoire est parti. Si tu as une
explication...


Heu... Tel quel, je ne vois pas ! Sauf en supposant que les structures
internes du filesystem sont elles-mêmes douteuses. Un 'fsck' passait-il sur ce
filesystem ? Ou alors un lien hard sur des répertoires ?

--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>

Avatar
Laurent Wacrenier
Paul Gaborit écrit:
strings . | xargs rm

(à n'utiliser qu'en désespoir de cause)


Excellent !
(il faut tout de même être root pour avoir le droit de le faire...)


Même pas, il faut que le répertoire soit en lecture (pour "strings"),
en écriture (pour "rm") et en execution (pour être dedans) et que le
système de fichier autorise l'ouverture en lecture des répertoires
sans passer par l'API dédiée (pas sur NFS, notement).

Si, comme sur FreeBSD, "strings" rale parce regarde s'il regarde un
répertoire, faire

strings < .

Mais bon, c'est pour un bug du système de fichier qui aurait du
refuser de remplir un répertoire qu'il ne pouvait plus relire
régulièrement.


Avatar
Nicolas Le Scouarnec
En désespoir de cause, j'ai fait comme tu l'as dit: j'ai juste mis
l'option '-r', et pas le 'f', et le repertoire est parti. Si tu as une
explication...


J'ai souvent le probleme avec un serveur de fichier NFS sous Windows (SFU),
ou je dois parfois rentrer dans les repertoires pour effacer les
fichiers, ou lancer rm -rf plusieurs fois d'affiler. Je ne sais plus
trop ce qui reste (si ce sont des fichiers cachés, des
sous-repertoires, ou les deux). Seuls les fichiers directement visible
dans le sous repertoire disparaissent.


--
Nicolas Le Scouarnec

Avatar
Rakotomandimby (R12y) Mihamina
( Fri, 01 Apr 2005 16:26:00 +0000 ) Nicolas Le Scouarnec :

J'ai souvent le probleme avec un serveur de fichier NFS sous Windows


Effectivement c'est par NFS, mais dans un environnement Linux-Linux.
Comme les fichiers ne sont plus là, je ne peux plus expérimenter, mais
bon...

--
Les serveurs avec 10Mb/s se louent maintenant pour 50 ou 60 Euros par mois!
La preuve http://www.google.fr/search?q=serveur+dedie
Infogerance de serveur dedie http://aspo.rktmb.org/activites/infogerance
(En louant les services de l'ASPO vous luttez contre la fracture numerique)

Avatar
Bob qui Trolle
Rakotomandimby (R12y) Mihamina wrote:
( Fri, 01 Apr 2005 16:26:00 +0000 ) Nicolas Le Scouarnec :


J'ai souvent le probleme avec un serveur de fichier NFS sous Windows



Effectivement c'est par NFS, mais dans un environnement Linux-Linux.
Comme les fichiers ne sont plus là, je ne peux plus expérimenter, mais
bon...


La plupart des implémentations de serveurs NFS permettent la mise de
verrous sur des fichiers par les clients NFS et tiennent compte
d'éventuels verrous posés par le système hôte (l'API Win32 connait même
la notion de verrou exclusif en lecture !), auquel cas, toute tentative
d'effacement via NFS d'un fichier verrouillée sera refusée à l'instant T
(same player shoot again).

Vu les noms de fichiers "à coucher dehors" que tu citais, ne s'agit-il
pas de fichiers temporaires créés dans des répertoires certes exportés
et montés par NFS, mais également exportés et montés via SMB par des
clients PCs suboptimalement configurés par l'usage d'un célèbre système
d'exploitation non-libre intégrant un célèbre logiciel non-libre de
pagination et mise en forme de fichiers textes par ailleurs connu connu
pour provoquer en certaines occasions l'auto-destruction du système hôte ?

<Greugneugneu>
D'une manière générale, toute question liée à un contexte impliquant NFS
ne trouve de solution logique que si et seulement l'existence de NFS est
mentionnée dans l'énoncé. Idem quand le client ou le serveur exploite
des logiciels employant des APIs peu communes dans le monde Unix, ou
implémente des appels systèmes "innovants" (au sens POSIX du terme).
</Greugneugneu>