将文件移动到〜/ .trash,具有唯一的文件名

Gio*_*Gio 4 bash

我的〜/ .bashrc中有以下别名

alias del="mv -t ~/.trash"
Run Code Online (Sandbox Code Playgroud)

这会将文件或目录移动到〜/ .trash文件夹.但是,如果我执行以下操作:

del test.txt
touch test.txt
del test.txt
Run Code Online (Sandbox Code Playgroud)

第二个del调用会覆盖〜/ .trash中已存在的文件test.txt,因此我丢失了备份.这当然是不受欢迎的行为.我正在寻找一种方法来调整我的别名,以便移动到〜/ .trash的文件附加了移动到那里的时刻的日期和时间,从而产生唯一的文件名.有人知道如何做到这一点吗?我正在寻找一种简单的方法来调整别名,而不是广泛的bash脚本.

kon*_*box 5

你可以使用一个功能.建议使用函数而不是别名.

function del {
    local F
    for F; do
        mv -- "$F" ~/.trash/"$F-$(exec date '+%F-%T')"
    done
}
Run Code Online (Sandbox Code Playgroud)

放入.bashrc并确保.bash_profile 来源 .bashrc.

有关您可以使用的其他格式,请参阅日期手册(man date).