crée un alias pour déplacer les fichiers dans un répertoire tmp

0

J'essaie de créer un alias pour déplacer des fichiers et des répertoires dans le tmprépertoire. C'est ce que j'ai essayé:

alias rm='/bin/mv *.* /tmp'

Le problème est que lorsque je tape rm filename, je reçois une erreur disant:

/bin/mv: target 'filename' is not a directory.

Je sais que le nom de fichier est juste un fichier. Le fait est que je veux le déplacer dans le /tmprépertoire spécifié . Quelqu'un peut-il m'aider?

Aimie
la source
3
Comme Flimzy l'a noté, il est impossible de le faire alias. Cependant, même si cela était possible, ce serait une mauvaise idée de l'utiliser alias. Premièrement, si vous êtes habitué au comportement personnalisé de rm, vous pourriez être obligé d'utiliser l'édition normale sur un autre ordinateur (faux sentiment de sécurité). Deuxièmement, si un autre utilisateur utilise votre ordinateur et essaie d’effacer un gros fichier binaire de 10 Go pour économiser de l’espace, il s’attend vraiment à ce que le fichier soit supprimé et non simplement déplacé vers / tmp.
bbaja42
1
@ bbaja42 a un point valide. Ne jamais aller de l'avant et changer la fonctionnalité d'une commande intégrée essentielle.
Slhck

Réponses:

2
alias rm='mv -t /tmp ' 

en utilisant GNU Collection mv8.13 sur Ubuntu 12.04. Notez l'espace après /tmp.

Adamherst
la source
2

Votre alias signifie que lorsque vous tapez 'rm filename', vous exécutez réellement cette commande:

/bin/mv *.* /tmp filename

Ce n'est évidemment pas ce que vous voulez. Je ne pense pas que vous puissiez utiliser un alias pour cela, car je ne pense pas qu'il soit possible de réordonner les arguments transmis à un alias. Vous ferez mieux d'écrire un court script shell qui ressemble à ceci:

#!/bin/sh
mv "$@" /tmp

Remarque: vous ne voulez pas non plus *. *, Cela ressemble à un Windowsisme ... qui ne fera correspondre que les noms de fichiers contenant des points. De nombreux noms de fichiers sous Linux ne contiennent pas de points.

Flimzy
la source
1
Cela échouera dès que des espaces sont impliqués. "$@"c'est ce que tu veux.
Daniel Beck