.bashrc alias for a command with fixed second parameter





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







3















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.










share|improve this question


















  • 2





    There is already a command-line interface to the trash: in 18.04 it's gio trash (in earlier versions of Ubuntu, gvfs-trash) i.e. you can just type gio trash <some files>. If that's really too long then you can alias it alias trash='gio trash'.

    – steeldriver
    Apr 21 at 13:27


















3















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.










share|improve this question


















  • 2





    There is already a command-line interface to the trash: in 18.04 it's gio trash (in earlier versions of Ubuntu, gvfs-trash) i.e. you can just type gio trash <some files>. If that's really too long then you can alias it alias trash='gio trash'.

    – steeldriver
    Apr 21 at 13:27














3












3








3


1






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.










share|improve this question














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.







bash






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Apr 21 at 9:58









charsicharsi

18817




18817








  • 2





    There is already a command-line interface to the trash: in 18.04 it's gio trash (in earlier versions of Ubuntu, gvfs-trash) i.e. you can just type gio trash <some files>. If that's really too long then you can alias it alias trash='gio trash'.

    – steeldriver
    Apr 21 at 13:27














  • 2





    There is already a command-line interface to the trash: in 18.04 it's gio trash (in earlier versions of Ubuntu, gvfs-trash) i.e. you can just type gio trash <some files>. If that's really too long then you can alias it alias trash='gio trash'.

    – steeldriver
    Apr 21 at 13:27








2




2





There is already a command-line interface to the trash: in 18.04 it's gio trash (in earlier versions of Ubuntu, gvfs-trash) i.e. you can just type gio trash <some files>. If that's really too long then you can alias it alias trash='gio trash'.

– steeldriver
Apr 21 at 13:27





There is already a command-line interface to the trash: in 18.04 it's gio trash (in earlier versions of Ubuntu, gvfs-trash) i.e. you can just type gio trash <some files>. If that's really too long then you can alias it alias trash='gio trash'.

– steeldriver
Apr 21 at 13:27










3 Answers
3






active

oldest

votes


















9














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





share|improve this answer
























  • thanks! This worked perfectly.

    – charsi
    Apr 21 at 10:16











  • Don't forget to close shell and open again to make this work

    – LeonidMew
    Apr 21 at 10:16











  • source ~/.bashrc works too

    – charsi
    Apr 21 at 10:17








  • 5





    You don't need a loop: trash() { mv "$@" destination; }

    – glenn jackman
    Apr 21 at 14:34



















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'





share|improve this answer































    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"





    share|improve this answer
























      Your Answer








      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "89"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1135728%2fbashrc-alias-for-a-command-with-fixed-second-parameter%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      3 Answers
      3






      active

      oldest

      votes








      3 Answers
      3






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      9














      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





      share|improve this answer
























      • thanks! This worked perfectly.

        – charsi
        Apr 21 at 10:16











      • Don't forget to close shell and open again to make this work

        – LeonidMew
        Apr 21 at 10:16











      • source ~/.bashrc works too

        – charsi
        Apr 21 at 10:17








      • 5





        You don't need a loop: trash() { mv "$@" destination; }

        – glenn jackman
        Apr 21 at 14:34
















      9














      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





      share|improve this answer
























      • thanks! This worked perfectly.

        – charsi
        Apr 21 at 10:16











      • Don't forget to close shell and open again to make this work

        – LeonidMew
        Apr 21 at 10:16











      • source ~/.bashrc works too

        – charsi
        Apr 21 at 10:17








      • 5





        You don't need a loop: trash() { mv "$@" destination; }

        – glenn jackman
        Apr 21 at 14:34














      9












      9








      9







      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





      share|improve this answer













      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






      share|improve this answer












      share|improve this answer



      share|improve this answer










      answered Apr 21 at 10:11









      LeonidMewLeonidMew

      1,320624




      1,320624













      • thanks! This worked perfectly.

        – charsi
        Apr 21 at 10:16











      • Don't forget to close shell and open again to make this work

        – LeonidMew
        Apr 21 at 10:16











      • source ~/.bashrc works too

        – charsi
        Apr 21 at 10:17








      • 5





        You don't need a loop: trash() { mv "$@" destination; }

        – glenn jackman
        Apr 21 at 14:34



















      • thanks! This worked perfectly.

        – charsi
        Apr 21 at 10:16











      • Don't forget to close shell and open again to make this work

        – LeonidMew
        Apr 21 at 10:16











      • source ~/.bashrc works too

        – charsi
        Apr 21 at 10:17








      • 5





        You don't need a loop: trash() { mv "$@" destination; }

        – glenn jackman
        Apr 21 at 14:34

















      thanks! This worked perfectly.

      – charsi
      Apr 21 at 10:16





      thanks! This worked perfectly.

      – charsi
      Apr 21 at 10:16













      Don't forget to close shell and open again to make this work

      – LeonidMew
      Apr 21 at 10:16





      Don't forget to close shell and open again to make this work

      – LeonidMew
      Apr 21 at 10:16













      source ~/.bashrc works too

      – charsi
      Apr 21 at 10:17







      source ~/.bashrc works too

      – charsi
      Apr 21 at 10:17






      5




      5





      You don't need a loop: trash() { mv "$@" destination; }

      – glenn jackman
      Apr 21 at 14:34





      You don't need a loop: trash() { mv "$@" destination; }

      – glenn jackman
      Apr 21 at 14:34













      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'





      share|improve this answer




























        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'





        share|improve this answer


























          5












          5








          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'





          share|improve this answer













          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'






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Apr 21 at 14:32









          glenn jackmanglenn jackman

          12.9k2545




          12.9k2545























              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"





              share|improve this answer




























                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"





                share|improve this answer


























                  0












                  0








                  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"





                  share|improve this answer













                  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"






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered yesterday









                  CPHCPH

                  843




                  843






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Ask Ubuntu!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1135728%2fbashrc-alias-for-a-command-with-fixed-second-parameter%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Plaza Victoria

                      In PowerPoint, is there a keyboard shortcut for bulleted / numbered list?

                      How to put 3 figures in Latex with 2 figures side by side and 1 below these side by side images but in...