Après une faute de frappe dans un chemin lors de l' utilisation cp
, il me semble avoir accidentellement copié le dossier pour se récursive, et maintenant je ne peux pas supprimer ce dossier à l' aide rm -rf
ou la Corbeille sous Mac OS X Finder
. Le fichier se trouve sur le disque de démarrage (donc HFS + J).
Le résultat de rm -rf
est juste Directory not empty
répété, comme suit:
rm: o/old/old/old/old/old/old/old/old: Directory not empty
rm: o/old/old/old/old/old/old/old: Directory not empty
rm: o/old/old/old/old/old/old: Directory not empty
rm: o/old/old/old/old/old: Directory not empty
rm: o/old/old/old/old: Directory not empty
rm: o/old/old/old: Directory not empty
rm: o/old/old: Directory not empty
rm: o/old: Directory not empty
rm: o: Directory not empty
Que dois-je faire pour supprimer ce dossier?
Comme vous pouvez le constater, j'ai essayé de renommer le premier dossier pour raccourcir le chemin du fichier. Le dossier passe à l'état Trash
fin, mais ne sera pas supprimé à cause du dialogue d'alerte suivant:
The operation can’t be completed because the item is in use.
lsof o
de voir qui utilise votre répertoireo
. Ensuite, vous pouvez voir quoi fermer. Vous avez probablement ouvert un terminal dans ce répertoire et / ou vous démarrez un programme à partir de ce répertoire.lsof o
ne renvoie rien, @Hasturfuser o
retourso:
Réponses:
Essayer
ou
-depth
indiquefind
d'aller d'abord dans la partie la plus profonde de l'arborescence, puis de revenir en arrière. La page de manuel indique, "L'utilisation de-delete
l'-depth
option active automatiquement l' option". Si votre version defind
ne supporte pas-delete
, essayezla source
No space left on device
df -h
retourne15Gi free
rm
/ unlink écrase les entrées du répertoire avec nuls, et modifie la liste libre pour y ajouter les blocs désalloués, mais il ne faut rien faire qui devrait tenter d’ allouer des blocs libres à partir de la liste libre. ) Une explication est qu'ilfind
faut écrire un fichier temporaire pour sauvegarder la structure de répertoires de votre "o
" arborescence au fur et à mesure de sa lecture. Vérifiezdf -h /tmp
.df -h
11 Gi
parce que j’utilise mon ordinateur depuis, mais quand mêmeEh bien, je viens d'avoir le même problème. Je l'ai résolu en raccourcissant le nom de chacun des répertoires imbriqués.
Comme il s’agit d’un problème ponctuel, je n’ai pas essayé de créer une magie de script intelligente. Je viens d'écrire
dans un shell, puis appuyez sur up arrowpour appeler la commande, et return. Avec un doigt sur chaque touche, je viens de répéter les deux frappes rapidement jusqu'au répertoire le plus profond. Ensuite
cd ~
etcd
à la racine de l'arbre défectueux. Un habitué arm -r
maintenant fait le travail.la source
rm -rf old/ 2>&1 | less
pour trouver la profondeur du fichier. Ensuite, j'ai couru cettefor
boucle plusieurs fois pour raccourcir suffisamment le chemin pour supprimer les fichiers. Merci.Si vous l'obtenez, c'est évident. Parce que vous ne pouvez pas recurse au fond, vous devriez déplacer le répertoire qui est un niveau plus profond juste un niveau plus haut. Après cela, il reste un répertoire avec une profondeur "un" qui peut être supprimé.
Supposons que vous avez un répertoire "infini" a / a / a / a / a / a / a / ....
alors vous faites:
Répétez jusqu'à ce qu'il ne reste plus de répertoire.
Le script suivant le fait: (vous devez appuyer sur ctrl-c après la fin)
Comme les noms sont identiques, les scripts «basculent» entre deux noms temporaires.
la source