Pages : 1
#1 Le 08/09/2006, à 18:07
- elmut
[Resolu]Alias rm
Bonjour !
je me suis recemment amusé sur mon terminal pour voir "la puissance" que ca a !
Mais j'en ai malheuresement subi quelques conséquences...
J'ai bêtement effectué un rm sur des fichiers que je ne voulais pas supprimer...
Erreur définitive apparement !
Pour remédier à ce genre de probème, je voudrais faire un alias !
Mais faire alias rm='rm -i' ne m'enchante pas vraiment !
Je préferarai un alias qui me deplace mes fichiers vers la poubelle (.Trash) avec un mv ou alors un cp suivi d'un rm...
Mais la je rencontre un probleme au niveau des arguments...
mv et cp en prennent 2.... la source et la destination...
Est-il quand même possible de faire un alias ?
Dernière modification par elmut (Le 10/09/2006, à 11:07)
Hors ligne
#2 Le 08/09/2006, à 19:56
- ppmt
Re : [Resolu]Alias rm
Oui tu n'est pas oblige de donner un nom a la destination
Tu peux juste specifier ou tu veux le mettre comme destination
genre
mv fichier.log ~/.Trash/
Ton fichier sera bouger vers .Trash avec le nom original
Par contre un bemol. Cette methode marche seulement avec un fichier a la fois
mv et cp ne comprennent une commande du genre
mv fichier.* ~/.Trash
Par contre si quelqu'un peux me contredire ou donner le moyen de faire une telle operation ca serait cool
le dock dont vous avez toujours rêvé Cairo-Dock
irc://irc.freenode.net/#Cairo-Dock-fr
Hors ligne
#3 Le 08/09/2006, à 23:03
- elmut
Re : [Resolu]Alias rm
mv fichier.log ~/.Trash/
OK je vois bien ce que fais la commande... mais comment tu fais pour quelle soit alias de rm ?
car si je met alias rm='mv ~/.Trash' ca ne fonctionne pas... il manque la source... et en fait ce qu'il s passe c'est que .Trash est pris pour source...
Hors ligne
#4 Le 08/09/2006, à 23:54
- ppmt
Re : [Resolu]Alias rm
ah ben oui j'ai essaye et on dirait bien que ce n'est pas possible avec alias
Par contre tu dois pouvoir ecrire un script
#!/bin/sh
mv $1 ~/.Trash
tu l'appeles comme tu veux et $1 est le parametre de ton script. Par contre tu es toujours limite a faire fichier par fichier
apres tu peux faire un alias de rm vers ton script
le dock dont vous avez toujours rêvé Cairo-Dock
irc://irc.freenode.net/#Cairo-Dock-fr
Hors ligne
#5 Le 09/09/2006, à 00:47
- kaworu
Re : [Resolu]Alias rm
Peut-être peux-tu faire :
alias rm="for i in $@; do mv "$i" ~/.Trash/; done"
de cette façon ta commande rm supporte toujours d'avoir plusieurs arguments !
Après test, ça marche pas (et je sais pas pk... pfff les arguments dans les alias c'est pas le pied et je pige pas pk) donc il vaut mieux plutôt faire un petit script à placer dans ton path (genre dans un dossier ~/bin) :
#!/bin/bash
if [ ! -d ~/.Trash ]; do
echo "Il n'y pas de dossier ~/.Trash !"
exit 1
fi
for i in $@; do
echo $i
mv "$i" ~/.Trash/
done
"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."
Hors ligne
#6 Le 09/09/2006, à 18:16
- elmut
Re : [Resolu]Alias rm
ok pour le petit script...
mais il faut forcement le placer dans mon dossier perso ?? (~/bin) ??
et pour alias je fais comment ? je donne le nom du script ?
Merci pour votre aide
Dernière modification par elmut (Le 09/09/2006, à 18:17)
Hors ligne
#7 Le 10/09/2006, à 02:50
- Ban
Re : [Resolu]Alias rm
Salut !
Une fois que tu as le script et les droits d'éxecutions dessus, tu as plusieurs solutions :
> Soit tu place le script dans un des dossiers de recherche du PATH (chez moi /usr/local/sbin, /usr/local/bin, /usr/sbin, /usr/bin, /sbin, /bin, /usr/bin/X11, /usr/games et ./ (dossier courant))
> soit faire un alias rm="/ou/est/le/script"
Voilou !
Kenavo !
[edit]
Juste une petite correction du script de Kaworu ou un "do" avait pris la place d'un "then" :
#!/bin/bash
if [ ! -d ~/.Trash ]; then
echo "Il n'y pas de dossier $HOME/.Trash !"
exit 1
fi
for i in $@; do
echo $i
mv "$i" $HOME/.Trash/
done
exit 0
J'en ai profité pour jouer au puriste, et l'acomoder à ma sauce...
Si ça te dérange, je m'en excuse et je vire mes modifs (à part le then )
Bonne nuit !
Dernière modification par Ban (Le 10/09/2006, à 03:02)
La littérature est un luxe, la fiction une nécessité. - Chesterton
Hors ligne
#8 Le 10/09/2006, à 11:07
- elmut
Re : [Resolu]Alias rm
OK !
Tout fonctionne à merveille !
Merci à vous tous !
Hors ligne
#9 Le 10/09/2006, à 23:16
- kaworu
Re : [Resolu]Alias rm
cool !
@Ban
Merci pour la correction, une inatention de ma part
Pour le $HOME à la place de ~/ y'a pas de soucis, c'est ce que j'adore dans bash, c'est qu'il y a mille façon de faire la même chose, et que donc on peut facilement trouver un code différent de ce que l'on imagine pour la même fonction (et après, tu choisi la manière que tu préfère, par exemple dans certains cas je préfère les boucle until que while etc). Certains trouveront que c'est du bordel mais je trouve que ça donne un coté artistique et c'est pour ça que j'adore Bash !
EDIT :
par soucis de cohérence, ne faudrait-il pas changer aussi le ~ par $HOME dans le test à la ligne 2 ?
#!/bin/bash
if [ ! -d $HOME/.Trash ]; then
echo "Il n'y pas de dossier $HOME/.Trash !"
exit 1
fi
for i in $@; do
echo $i
mv "$i" $HOME/.Trash/
done
exit 0
Dernière modification par kaworu (Le 10/09/2006, à 23:24)
"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."
Hors ligne
#10 Le 11/09/2006, à 00:55
- Ban
Re : [Resolu]Alias rm
[...]par soucis de cohérence, ne faudrait-il pas changer aussi le ~ par $HOME dans le test à la ligne 2 ?
Si, tu as raison... Une petite baisse d'attention... et plouf !
Boucle until ? Je ne connaissais pas. Merci !!
C'est vrai... Changer ~ par $HOME, c'est une question de goût. Et c'est vrai que ça en devient de la simple esthétique, presque de l'art...
Comme ces inifinité de commandes disponnibles, il faut trouver la bonne, l'acomoder à sa sauce... Pour faire ces petits tableaux parfaits qui nous rendent bien des services
C'est d'ailleurs ce que j'adore sous Linux : la facilité de personaliser son PC, ce qui rend tout ça si agréable à utiliser (entre autres, évidement )... Ces millier d'options n'attendant qu'à être bidouillées pour parfaire la personalisation...
Bon, je suis parti dans mon trip, moi
Allez, bonne nuit !
La littérature est un luxe, la fiction une nécessité. - Chesterton
Hors ligne
#11 Le 11/09/2006, à 01:13
- mesmento
Re : [Resolu]Alias rm
@ kaworu :
si tu aimes ce genre de "bordel" essaye Perl.
Perl c'est comme l'art : chacun fais à sa manière, et personne comprends.
Hors ligne
#12 Le 11/09/2006, à 01:21
- kaworu
Re : [Resolu]Alias rm
@mesmento
Salut !
effectivement, j'ai entendu que Perl était aussi du style, alors c'est le prochain que je vais étudier. La je suis en plein dans Python mais pour moi c'est pas le pied (j'aime bien l'idée de simplifier la syntaxe par indentation/retour à la ligne , qui bouffe les ; et { et } ... mais pas le reste). Il faut aussi que j'étudie le Ruby, mais Perl est le prochain dans liste (si t'as des tutos/cours assez "interactif" (lire cours+exos+corrections) , envoie-moi un PM stp !) .
"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."
Hors ligne
#13 Le 11/09/2006, à 02:48
- ppmt
Re : [Resolu]Alias rm
ah ben non pas un PM mets les dans la section Programmation
Perl moi je l'ai appris sur un livre et c'est vrai que c'est folklore. J'avais fait un truc pour le boulot dont j'etais super fier. Un jour un collegue plus cale que moi en Perl me l'avais modifie et arrange a sa sauce...depuis je suis incapable de corriger son code...je comprends rien
Sinon c'est facile a apprendre Python? bon on tourne au HS la donc j'arrete
le dock dont vous avez toujours rêvé Cairo-Dock
irc://irc.freenode.net/#Cairo-Dock-fr
Hors ligne
Pages : 1