4

I would like to create an alias for the move command -

trash='mv <some files> /home/$USER/.local/share/Trash/files'

How do I make this work?

I want the destination to always be the same. But I want to be able to pass the files to be moved.

charsi
  • 353
  • 2
  • 9

3 Answers3

10

Use function instead of alias, defined in .bashrc

nano ~/.bashrc 

# put inside .bashrc:
trash() { 
  for item in "$@" ; do
    echo "Trashing: $item" 
    mv "$item" /home/$USER/.local/share/Trash/files 
  done
}

Then in shell prompt you can use:

$ trash file1 file2
LeonidMew
  • 2,802
5

You can only append arguments to an alias. Fortunately, mv allows you to do this, with the -t option

alias trash='mv -t ~/.local/share/Trash/files'
glenn jackman
  • 18,218
0

You can also create a bash script and run that script with an alias.

trash.sh:

#!/bin/sh

for arg in $*; do
    mv $arg /home/$USER/.local/share/Trash/files
done

exit 0

.bashrc:

alias trash="/path/to/script/trash.sh"
Cloud9Developer
  • 458
  • 5
  • 10