unix에서의 휴지통 프로그램입니다.
1 for hp-ux #
# scripted by gimslab.com # 이 스크립트를 이용해 옮길수 있는 파일의 최상위 디렉토리(일종의 안전장치) # 아래의 디렉토리 명으로 시작하지 않는 파일들은 이 명령을 통해 휴지통할수 없다. top_dir='/data/ekp/svr1' # 휴지통 디렉토리 # 지워진 파일들은 아래디렉토리 아래에 풀패스 그대로 디렉토리가 생성되고 파일이 이동된다. trash_dir='/data/inetrr/.TRASH' if [ -z "$1" ]; then echo "parameter needed" exit 1 fi until [[ -z $1 ]] do full_name=$1 # make absolute dir if (( `expr $1 : ^[^/]` )); then full_name=$PWD/$1 fi # check top_dir if (( ! `expr ${full_name} : ^${top_dir}` )); then echo "$1 is not a sub-file of ${top_dir}" exit 1 fi #target_dir=`echo "$full_name" | sed 's/[^\/]*\/*$//'` target_dir=`dirname $full_name` target_dir=$trash_dir$target_dir mkdir -p $target_dir mv -i ${full_name} ${target_dir} if [[ $? = 0 ]]; then echo "$full_name moved to $target_dir" fi shift done
2 for cygwin #
# scripted by gimslab.com # 이 스크립트를 이용해 옮길수 있는 파일의 최상위 디렉토리(일종의 안전장치) # 아래의 디렉토리 명으로 시작하지 않는 파일들은 이 명령을 통해 휴지통할수 없다. top_dir='/win/c/Documents\ and\ Settings/GIM' # 휴지통 디렉토리 # 지워진 파일들은 아래디렉토리 아래에 풀패스 그대로 디렉토리가 생성되고 파일이 이동된다. trash_dir='/win/c/DOCUME~1/GIM/cygwin_home/.TRASH' if [ -z "$1" ]; then echo "parameter needed" exit 1 fi until [[ -z $1 ]] do full_name=$1 # make absolute dir if (( `expr $1 : ^[^/]` )); then full_name=$PWD/$1 fi # check top_dir if (( ! `expr "${full_name}" : ^"${top_dir}"` )); then echo "$1 is not a sub-file of ${top_dir}" exit 1 fi #target_dir=`echo "$full_name" | sed 's/[^\/]*\/*$//'` target_dir=`dirname "${full_name}"` target_dir=$trash_dir$target_dir mkdir -p "${target_dir}" mv -i "${full_name}" "${target_dir}" if [[ $? = 0 ]]; then echo "$full_name moved to $target_dir" fi shift done