J'ai exécuté cette commande hier, je pensais sur une machine de test, mais c'était un File-Server connecté via SSH.
sudo rm -rf /tmp/* !(lost+found)
Mon émulateur de terminal est Konsole. Mon système est Debian 7.
Question:
Cette commande a-t-elle supprimé d'autres fichiers que les fichiers dans / tmp?
files
filesystems
rm
tmp
quelque chose quelque chose
la source
la source
dsgsadfsf
et appuyez sur Entrée. Voir le résultat. Si c'est le casbash: dsgsadfsf: command not found
, votre coquille l'estbash
.Réponses:
La syntaxe correcte dans bash est la suivante:
Comme @goldilocks l'a écrit dans les commentaires, la commande d'origine fait une expansion de la requête (elle supprime tous les fichiers du
/tmp
dossier, puis continue et supprime tous les fichiers du dossier de travail actuel, dans votre cas lehome
dossier).Vous pouvez essayer de vérifier si vous pouvez récupérer certaines de vos données. Il y a une question sur la récupération de données Linux ici .
la source
rm -rf / tmp
^^sudo
, donc un dossier normal inscriptible uniquement pour root n'aurait pas nécessairement aidé.Le
!(lost+found)
dans votrerm
commande était probablement l'erreur fatale:Je ne sais pas exactement ce
bash
que cela fait, mais cette commande ci-dessous affiche tout dans mon/tmp/
et aussi tout mon répertoire actuel (qui est actuellement~
):la source
!(folder)
fait partie d'une commande que j'ai exécutée une fois, qui a supprimé tout sauffolder
.!lost+found: event not found
comme!
est utilisé pour récupérer des commandes de l'historique.cd /; echo !(lost+found)
> _ <!(foo)
fonctionne en bash comme «tout sauf foo» uniquement si l'extglob
option est définie. De plus, OP n'a pas spécifié quel shell il utilise, il est donc très difficile de deviner exactement ce que larm !(lost+found)
commande a fait dans son cas.bash
comme shell par défaut. Il n'a probablement pas changé cela. De plus, dans Debian 7, l'extglob
option est définietrue
par défaut (je viens de le vérifier).