[Linux] Modification du .profile

Fermé
Phil - 22 mai 2007 à 09:13
jipicy Messages postés 40805 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 22 mai 2007 à 14:32
Bonjour à tous.

Voilà, je voudrais modifier mon .profile afin de remplacer la commande rm par la commande mv vers un dossier de mon choix, comment faire ?
j'ai essayé en mettant :
alias   rm='mv \!* /HOME/trash'

mais cela ne marche pas.

Merçi d'avance

5 réponses

bon alors du coup j'ai fait ça (le mérite revient à un célèbre moteur de recherche qui finalement m'a aidé à trouver la solution....)
function rm () {

for i in $*
do         
     
            if [ -e "$i" ] 
            then
               mv $i /HOME/poubelle
               echo -e "Le fichier $i est deplace dans la corbeille"
            else 
              echo -e $i ': Aucun fichier ou repertoire de ce type'
            fi
done
  
}
0
Salut,

Alors, cette méthode fonctionne bien mais lorsque j'efface successivement 2 fichiers portant le même nom le plus ancien est écrasé.
Comment faire pour ajouté automatiquement une sorte d'indice (numéro par exemple) à chaque fichiers pour éviter ce problème.

Si quelqu'un à la solution....Merçi :)
0
jipicy Messages postés 40805 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 901
22 mai 2007 à 13:19
Salut,

Essaie plutôt :
for i in "$@"
Petite explication en live :
[jp@MDK tmpfs]$ set a b c
$ echo "$*"
a b c
$ echo "$@"
a b c
$ for i in "$*";do echo "Paramètre : $i";done
Paramètre : a b c
$ for i in "$@";do echo "Paramètre : $i";done
Paramètre : a
Paramètre : b
Paramètre : c
$
;-))
0
asevere Messages postés 13089 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 425
22 mai 2007 à 13:48
JP, je pesne qu'il voualit dire:
- Je supprimer toto
- Je créé un nouveau toto
- Je supprime le nouveau toto ...


Plusieures solutions:
mv $i /HOME/poubelle/$i.$(date +%Y%m%d%H%M%S)
Pour suffixer le fichier avec la date (probléme si tu supprimes deux fois le même fichier dans la même seconde) c'est le plus simple, mais pas secure.

D'autres solutions, plus complexes:

Ajouter une numero de serie calculer à partir du dernier numero,
Dans l'ordre de suppression:
mon_fichier.0 (premier fichier supprimé)
mon_fichier.1 (second fichier supprimé)
mon_fichier.2 (...)
mon_fichier.3
Un peu plus complexe encore, même methode mais dans un ordre plus logique, ou du moins attendu:
suppression 1:
mon_fichier.0
suppression 2: (0 devient 1, et le "nouveau" fichier devient 0)
mon_fichier.0 (dernier fichier supprimé)
mon_fichier.1 (premier fichier supprimé)

suppression 3: (1 devient 2, 0 devient 1, etc.)
mon_fichier.0 (dernier fichier supprimé)
mon_fichier.1 (avant dernier fichier supprimé)
mon_fichier.2 (premier fichier supprimé)
etc.
De cette manière, les fichier .0 représenterons toujours la dernière version supprimée, mais cela implique une fonction recursive pour renommer l'ensemble des fichiers du même nom... ça peut être dangereux à la longue sauf a prévoir d'archiver regulièrement l'ensemble du répertoire (une fois par heure dans un dossier 200605121100 pour 11h00, etc.) pour reprendre la numerotation a 0 toutes les heures.

Encore plus complexe, procéder par diff en cas de fichier caractère et par archivage pour des binaire (mais dans ce cas, autant recoder CVS, voire utiliser CVS pour stocker ces fichiers "supprimés" (idée assez comique) ;-))

@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Waaaaa, mais c'est parfait tous ça !
Merçi beaucoup vous 2 je pense qu'avec ces infos je vais y arriver facilement.
Jipicy, je voyais pas vraiment le rapport avec mon problème mais c'est énormissime cette info elle me servira surement dans mes prochains scripts.

Merçi encore.
0
jipicy Messages postés 40805 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 901
22 mai 2007 à 14:32
Oups ;-((

Désolé pour le malentendu et ravi que ça puisse te servir quand même un jour ;-))

==> Adrien : C'est que je me fais vieux et du coup je suis plus long à la détente, et ça va pas aller en s'arrangeant ;-DD
0