J'ai des répertoires de système de fichiers ubuntu dans le répertoire racine et j'ai accidentellement copié des centaines de fichiers dans le répertoire racine.
J'ai intuitivement essayé de supprimer les fichiers copiés en excluant le système de fichiers comme
rm -rf !{bin,sbin,usr,opt,lib,var,etc,srv,libx32,lib64,run,boot,proc,sys,dev} ./.
mais ça ne marche pas. Quelle est la bonne façon d'exclure certains répertoires tout en supprimant le tout?
EDIT: N'essayez jamais aucune des commandes ici sans savoir quoi faire!
mc
. Sélectionnez tout avec*
, puis désélectionnez des fichiers spécifiques avec la touche-
ouInsert
./bin/bash
mc
est Midnight Commander, une imitation très utile de Norton Commander. Il s'exécute dans un terminal. (Midnight Commander et Norton Commander sont des exemples de ce qu'on appelle un gestionnaire de fichiers orthodoxe .)Réponses:
Puisque vous utilisez
bash
:Je recommande d'ajouter
echo
au début de la ligne de commande lorsque vous exécutez quelque chose qui peut potentiellement faire exploser tout le système. Retirez-le si vous êtes satisfait du résultat.Remarque: La commande ci-dessus ne supprimera pas les fichiers cachés (ceux dont le nom commence par un point). Si vous souhaitez également les supprimer, activez également l'
dotglob
option:la source
rm -rf ./!(bin,sbin,..)
virgule séparément, mais elle supprime tous les répertoires.!(...)
syntaxe? D'après l'exemple, je pensais intuitivementls ./!(*/)
ne répertorier que les fichiers, mais cela ne fonctionne pas de cette façon.*
ou d'autres globes.Cette commande affichera tous les non-répertoires dans
/
:Une fois que vous avez tout à fait sûr qu'aucun fichier ne soit là que vous souhaitez conserver, vous pouvez utiliser:
Plus sûr, ce serait de les déplacer ailleurs pour vous assurer de ne pas supprimer quelque chose que vous souhaitez conserver:
Si, en plus des fichiers, vous avez également des répertoires que vous avez ajoutés à la racine du système de fichiers, cela pourrait être automatisé en excluant les répertoires LSB d'un automatisé
mv
ourm
, mais honnêtement, puisque nous avons affaire à la purge des choses dans le racine du système de fichiers, je vous suggère fortement d'envisager de le faire manuellement si possible.Si ce n'est pas possible, quelque chose comme ça pourrait faire l'affaire:
Une fois que vous avez réussi le test de cri (c'est-à-dire que votre système fonctionne toujours et que vous ne criez pas dans l'angoisse), vous pouvez supprimer le contenu de
/root/preserve/
.Remarque importante: quoi que vous fassiez, ne pensez même pas à exécuter une permutation de
rm -fr [ANYTHING GOES HERE] /
.la source
rm
. Comme un script avecrm -fr $somepath/
avecsomepath
non initialisé. J'aurais pu aller plus loin en exprimant la gravité de cette situation, mais j'ai choisi de rester favorable à la famille dans mon avertissement.Cela devrait faire le travail (mais pas de la même manière que le PO le demande):
supprimez tous les fichiers / répertoires que vous souhaitez conserver
Si vos fichiers ont tous le même format de nom, la même date ou autre chose, il existe d'autres méthodes.
Je regarderais les inodes - et verrais s'ils sont séquentiels via ls -i | sort et s'ils le sont, alors les nouveaux fichiers auront des inodes plus grands. Ensuite, en utilisant le même type de processus que ci-dessus ...
dans la commande cut ci-dessus, vérifiez d'abord votre liste d'inodes pour vous assurer que c'est la bonne quantité.
la source