Answers:
在webupd8.org上有一个关于此的食谱。为防止链接腐烂,这里是重要信息(有一些附加内容)。
sudo apt-get install trash-cli
这将安装trash
,empty-trash
,list-trash
和restore-trash
命令,您可以按原样使用或制作rm
的别名trash
(见下文)。
该trash
命令的语义与标准的语义有所不同rm
-它不需要-r
标记即可删除目录。如果这困扰您,webupd8.org会提出以下脚本,您可以将其放在PATH中并进行调用trash-rm
:
#!/bin/bash
# command name: trash-rm
shopt -s extglob
recursive=1
declare -a cmd
((i = 0))
for f in "$@"; do
case "$f" in
(-*([fiIv])r*([fiIv])|-*([fiIv])R*([fiIv]))
tmp="${f//[rR]/}"
if [ -n "$tmp" ]; then
#echo "\$tmp == $tmp"
cmd[$i]="$tmp"
((i++))
fi
recursive=0
;;
(--recursive) recursive=0
;;
(*)
if [ $recursive != 0 -a -d "$f" ]; then
echo "skipping directory: $f"
continue
else
cmd[$i]="$f"
((i++))
fi
;;
esac
done
trash "${cmd[@]}"
在Ubuntu 12.04和更高版本中,脚本中的最后一个命令应trash-put "${cmd[@]}"
改为而不是trash "${cmd[@]}"
(因为该命令已从更改trash
为trash-put
)。
然后使脚本可执行:
chmod +x trash-rm
一旦将它放在的某个目录中PATH
,请在〜/ .bashrc中添加一个别名,这将使bash调用脚本而不是实际的rm
命令:
alias rm="trash-rm"
正如djeikyb正确指出的那样,.bashrc别名技巧仅对修改了.bashrc的用户有效,并且仅在bash终端会话中有效。
就是这样。
alias="trash"
),它对我来说非常有用。您知道使用脚本有什么好处吗?
trash
行为更像rm
删除目录。例如,这对于某些希望按其rm
方式工作的脚本而言可能很重要。我更新了答案。