OVH Cloud OVH Cloud

rm *

20 réponses
Avatar
noone
Bonsoir,

j'ai fait comme un con un rm * dans un répertoire perso... (sur Debian
Sarge)



y a-il moyen de récupérer...

Merci d'avance

10 réponses

1 2
Avatar
Nicolas George
Jerome Lambert wrote in message :
Quelqu'un peut-il (m')expliquer?


mkdir empty
touch empty/foo empty/bar
chmod 444 empty/bar
rm empty/foo empty/bar empty/baz

Recommencer avec rm -i, puis avec rm -f.

Avatar
Matthieu Moy
"Rakotomandimby (R12y) Mihamina" writes:

( Fri, 01 Apr 2005 23:42:11 +0200 ) Jerome Lambert :

Magritte:~/test jerome$ rm *
Magritte:~/test jerome$

Quelqu'un peut-il (m')expliquer?


Mauvais shell changer de shell?
Moi mon zsh me demande confirmation.


Je serais bien surpris que ce soit le shell qui te demande
confirmation (le shell, il parse la ligne de commande et il lance
l'executable concerné quand tu appuies sur entrée, c'est tout -- sauf
pour les commandes internes du shell). Par contre, ton zsh a sans
doute fait un alias qui rajoute l'option -i.

--
Matthieu


Avatar
Nicolas George
Matthieu Moy wrote in message :
Je serais bien surpris que ce soit le shell qui te demande
confirmation


Et pourtant :

~ $ rm *
zsh: sure you want to delete all the files in /users/98/maths/george [yn]? n
^^^
RM_STAR_SILENT (-H)
Do not query the user before executing "rm *" or "rm
path/*".

(zshoptions(1))

Avatar
noone
Bon c'est bon j'ai réparé ma bêtise... merci (quand même)
Avatar
noone
Bon c'est bon j'ai réparé ma bêtise... merci (quand même)


Ah oui pour info c'était une base de donnée d'exercices de Physique en
LaTeX (pour l'instant il n'y en a que 5 exercices... )
avec script Perl pour générer la base (fichier texte index_table.txt)

Si ça vous interesse c'est ici :
http://s.cls.free.fr/realisations/phys_exo/phys_exo_latex.zip


Je pense que partager c'est le meilleur moyen de sauvegarde ;-)
c'est aussi grace à ça que je n'ai pas trop perdu... il y avait pas mal
de choses que j'avais éparpillées sur Usenet ;-)

Avatar
VAQUIN Vincent

Tu connaissais celle du mec
qui fait rm -fr / tmp/foo/bar, en root ?)


Moi j'ai fait ça...
rm -Rf /
en root...
Heureusement, j'ai stoppé en catastrophe et ça n'avait commencé à grignoter
que le /mnt/windows...

La vengeance du pingouin !
Du coup j'ai même pas réinstallé windows et je m'en suis passé pendant des
mois.
J'ai installé XP lorsqu'on m'a offert un jeu vidéo à Noël...

Avatar
dominique
Bonsoir,

j'ai fait comme un con un rm * dans un répertoire perso... (sur Debian
Sarge)


Linux Pratique du mois de gnagnagna avait passé un super script que
j'utilise toujours. Il est dans mes alias et et je l'utilise en lieu et
place de rm.
Il crée dans le $HOME un répertoire .corbeille qui marche impeccablement
en mode console.
Je répète : ce script n'est pas de moi !
Bon après-midi,
Dominique


[ messcripts]$ cat srm
#!/bin/bash

# v : verbeux
# h : aide en ligne
# l : liste mais avec affichage personnalis�
# e : vider la corbeille
# r : vider r�ursivement les r�ertoires
# s : restituer un fichier
# S : restituer un fichier dans son r�ertoire d'origine

# R�ertoire corbeille
corbeille=$HOME/.corbeille

IFS=$'n'

# Initialisation des variables d'option
optrecursif=0
optaide=0
optverb=0
optlist=0
optvide=0
optrestore=0

while getopts ":vhlers:S:" option
do
case $option in
v) optverb=1 ;;
h) optaide=1 ;;
l) optlist=1 ;;
e) optvide=1 ;;
r) optrecursif=1 ;;
s) optrestore=1
restore=$OPTARG;;
S) optrestore=2
restore=$OPTARG;;
# en cas d'option erron�, on affiche l'aide
*) echo "Option -$OPTARG inconnue"
optaide=1 ;;
esac
done
shift $((OPTIND - 1))

# V�ification de l'existence du r�ertoire corbeille
if [ ! -d "$corbeille" ]
then
mkdir "$corbeille"
fi

# Affichage de l'aide
if [ $optaide == 1 ]
then
echo "Usage : $0 [options] [fichiers �effacer]";
echo "Options :"
echo " -v : mode verbeux"
echo " -h : affiche cette aide"
echo " -r : effacement r�ursif des sous-r�ertoires"
echo "-s fichier : restitue un fichier"
echo "-S fichier : restitue un fichier dans son r�ertoire d'origine"
echo " -l : affiche le contenu de la corbeille"
echo " -e : vide la corbeille"
exit 0
fi

# Affichage du contenu de la corbeille
if [ $optlist == 1 ]
then
if [ $optrecursif == 1 ]
then
liste=$(ls -RF --color "$corbeille")
else
liste=$(ls -F --color "$corbeille")
fi

echo "${liste//__SLASH__//}" | more
du -h --max-depth=0 $corbeille
exit 0
fi

# Vider la corbeille
if [ $optvide == 1 ]
then
if [ $optverb == 1 ]
then
du -h --max-depth=0 $corbeille
echo "Vidange de la corbeille..."
fi

rm -rf $corbeille/*

if [ $optverb == 1 ]
then
du -h --max-depth=0 $corbeille
fi
exit 0
fi

# Restitution de fichiers effac�
if [ $optrestore != 0 ]
then
fichier=($(ls -1 $corbeille | grep $restore))
if [ ${#fichier[*]} == 0 ]
then
echo "Aucun fichier ne correspond au motif $restore"
exit 0
fi

if [ $optrestore == 2 ]
then
for fic in ${fichier[*]}
do
restoredfile=${fic//__SLASH__//}
if [ $optverb ]
then
echo "$restoredfile restitu�
fi
mv "$corbeille/$fic" "$restoredfile"
done
elif [ $optrestore == 1 ]
then
for fic in ${fichier[*]}
do
restoredfile=$(echo $fic | sed 's/.*__SLASH__//g')
if [ $optverb ]
then
echo "$restoredfile restitu�
fi
mv "$corbeille/$fic" "$restoredfile"
done
fi
exit 0
fi

# Action principale : effacer les fichiers
for fichier in $*
do
if [ -d "$fichier" -a $optrecursif != 1 ]
then
echo "$fichier est un r�ertoire, il ne peut �re effac�
continue
fi

path=$(pwd $fichier)

if [ $optverb ]
then
echo "$fichier -> $corbeille/"
fi
mv "$fichier" "$corbeille/${path////__SLASH__}__SLASH__$fichier"
done
du -h --max-depth=0 $corbeille

Avatar
JRD
Bonjour,

Jerome Lambert wrote:
Matthieu Moy wrote:
Jerome Lambert writes:

-f Attempt to remove the files without prompting for confirma-
tion,




[Démonstration erronée]

Donc, visiblement, sous Linux, rm = rm -f ...


Non.

"rm" efface seulement les fichiers accessible en écriture.
"rm -f" efface même les fichiers protégés en écriture.

Démonstration :


/tmp/jrd > ls -al
total 48
drwxr-xr-x 2 drapeau micro 4096 Apr 2 18:06 .

/tmp/jrd > echo > tata ; echo > titi && chmod -w titi

tata = fichier "normal" => lecture _et_ écriture
titi = fichier "protégé" => lecture _sans_ droit écriture

/tmp/jrd > ls -al
total 56
drwxr-xr-x 2 drapeau micro 4096 Apr 2 18:10 .
-rw-r--r-- 1 drapeau micro 1 Apr 2 18:10 tata
-r--r--r-- 1 drapeau micro 1 Apr 2 18:10 titi

/tmp/jrd > rm *
rm: remove write-protected regular file `titi'? y

/tmp/jrd > ls -al
total 48
drwxr-xr-x 2 drapeau micro 4096 Apr 2 18:10 .

CQFD

Donc "rm" != "rm -f"

Voilà.
JRD.
--
jerome (dot) drapeau <at> free (dot) fr
http://jerome.drapeau.free.fr
La critique est aisée, l'art est difficile.



Avatar
Matthieu Moy
"" writes:

Je pense que partager c'est le meilleur moyen de sauvegarde ;-)
c'est aussi grace à ça que je n'ai pas trop perdu... il y avait pas
mal de choses que j'avais éparpillées sur Usenet ;-)


« _real_ men just upload their important stuff on ftp, and let the
rest of the world mirror it ;) » -- Linus Benedict Torvalds.

--
Matthieu

Avatar
Sébastien Dailly
Donc, visiblement, sous Linux, rm = rm -f ...


ca dépend .. un alias peut etre fait automatiquement .. et ca peut sauver
souvent !

1 2