Languages/bash2007.08.28 09:38
rm에 대한 앨리어스로 등록 후 사용하는 것이 바람직.
이 셸 스크립트는 /home/<자기 계정 이름>/bin/remove로 저장하여 두고,
alias rm='/home/<자기 계정 이름>/bin/remove' 같이 해 놓으면 된다.
휴지통 저장 없이 그냥 지우려면 \rm ... 과 같이 하면 되니까 그편이 낫다.
복구 유틸리티도 만들면 좋은데 귀찮아서 아직 못만들었다.

#!/bin/bash

trashcan=~/trashcan
trashcan_cnt=~/trashcan/count
trashcan_idx=~/trashcan/index

if [ ! -e $trashcan ]
then
    mkdir $trashcan
fi

if [ ! -e $trashcan_cnt ]
then
    echo '000' > $trashcan_cnt
fi

if [ ! -e $trashcan_idx ]
then
    touch $trashcan_idx
fi

cur_dir=`pwd`
cur_cnt=`head -1 $trashcan_cnt`
cur_cnt=`printf "%03d" $(expr $cur_cnt + 1)`
cur_date=`date +%Y/%m/%d/%H:%M:%S`

for item in $@
do
    if [ -e $item ]
    then
        first_char=`expr substr $item 0 1`
        printf "%s" $first_char
        if [ "$first_char" = "/" ]
        then
            dir=${item}
        else
            dir=${cur_dir}/${item}
        fi

        file=`basename $item`

        printf "%s\t%s\t%s\t%s\n" $cur_cnt $dir $file $cur_date >> $trashcan_idx
        echo $cur_cnt > $trashcan_cnt
        if [ ! -e $trashcan/$cur_cnt ]
        then
            mkdir $trashcan/$cur_cnt
        fi
        mv $item $trashcan/$cur_cnt
    fi
done

신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. pp

    오래전 글이군요.. 요즘은 trash-cli라는걸 깔면 gui상의 휴지통과 동일한 동작을 합니다.
    저자분은 아시겠지만 검색으로 들어오신분은 참고..

    2013.10.02 18:21 신고 [ ADDR : EDIT/ DEL : REPLY ]