Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/09/2006, à 19: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, à 12:07)

Hors ligne

#2 Le 08/09/2006, à 20: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 smile


le dock dont vous avez toujours rêvé  Cairo-Dock
irc://irc.freenode.net/#Cairo-Dock-fr

Hors ligne

#3 Le 09/09/2006, à 00: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 09/09/2006, à 00: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, à 01: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, à 19: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 smile

Dernière modification par elmut (Le 09/09/2006, à 19:17)

Hors ligne

#7 Le 10/09/2006, à 03: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... tongue
Si ça te dérange, je m'en excuse et je vire mes modifs wink (à part le then tongue)

Bonne nuit !

Dernière modification par Ban (Le 10/09/2006, à 04:02)


La littérature est un luxe, la fiction une nécessité. - Chesterton

Hors ligne

#8 Le 10/09/2006, à 12:07

elmut

Re : [Resolu]Alias rm

OK !

Tout fonctionne à merveille ! big_smile

Merci à vous tous !

Hors ligne

#9 Le 11/09/2006, à 00:16

kaworu

Re : [Resolu]Alias rm

wink cool !

@Ban
Merci pour la correction, une inatention de ma part wink
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 ? wink

#!/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 11/09/2006, à 00:24)


"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."

Hors ligne

#10 Le 11/09/2006, à 01:55

Ban

Re : [Resolu]Alias rm

kaworu a écrit :

[...]par soucis de cohérence, ne faudrait-il pas changer aussi le ~ par $HOME dans le test à la ligne 2 ? wink

Si, tu as raison... Une petite baisse d'attention... et plouf ! big_smile

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... tongue
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 smile

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 tongue)... Ces millier d'options n'attendant qu'à être bidouillées pour parfaire la personalisation... smile
Bon, je suis parti dans mon trip, moi lol


Allez, bonne nuit !


La littérature est un luxe, la fiction une nécessité. - Chesterton

Hors ligne

#11 Le 11/09/2006, à 02: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, à 02: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, à 03: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 big_smile

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