답변:
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에 별칭을 추가하면 실제 rm
명령 대신 bash가 스크립트를 호출합니다 .
alias rm="trash-rm"
djeikyb가 올바르게 지적했듯이 .bashrc 별칭 트릭은 .bashrc가 수정 된 사용자와 bash 터미널 세션에서만 작동합니다.
그리고 그것이되어야합니다.
alias="trash"
). 스크립트를 사용하면 어떤 이점이 있는지 알고 있습니까?
trash
보다 유사하게 동작하도록하는 것 rm
입니다. rm
예를 들어, 작동 방식 을 기대 하는 일부 스크립트의 경우이 기능이 중요 할 수 있습니다 . 나는 대답을 업데이트했다.