0. Contents
1. Concept
2. Script Source
3. How to Use
#! /usr/bin/env bash
function dbf(){
## 変数をセット
local File Dir="$HOME" COpt
## 引数をチェック
while (( $# > 0 )) ; do
case "$1" in
-d|--depth)
if [ "$2" -gt 0 ] 2>&- ; then
COpt="-maxdepth $2"
else
echo "error: $FUNCNAME: $1 $2: Invalid argument." 1>&2
return 1
fi && shift
;;
*)
if [[ -d "$1" ]] ; then
if [[ -r "$1" && -x "$1" ]] ; then
## フルパスを取得
Dir=$( builtin cd "$1"; echo "$PWD" )
else
echo "error: $FUNCNAME: $1: Permission denied." 1>&2
return 1
fi
else
echo "error: $FUNCNAME: $1: Invalid option." 1>&2
return 1
fi
;;
esac && shift
done
## 削除対象ファイルを検索
echo "$FUNCNAME: Searching for backup files..."
File=$(
find "$Dir" $COpt \! -type d -iregex '.*\(~$\|\.bak$\|\/\#.*\#$\|\/\.\#.*\)' 2>&-
)
[[ -n "$File" ]] || {
echo -e "\n$FUNCNAME: No backup files." 1>&2
return 1
}
## 確認後, ファイルを削除
echo -e "\n${File}\n"
read -p "$FUNCNAME: Delete Now ? [y/N] : "
[[ "$REPLY" == [yY] ]] && echo || {
echo "$FUNCNAME: quit." 1>&2
return 1
}
echo "$File" |while read -r ; do
rm -v "$REPLY" || exit
done && echo -e "\n$FUNCNAME: done."
}
dbf "$@"
|
- "~" で終わる
- ".bak" で終わる
- 先頭と末尾に "#" が付いている
- ".#" で始まる
USAGE、OPTION は以下の通り。
USAGE: dbf (Options) (Directory)
-d, --depth [Num]
: set maxdepth for find
[Directory]
: set check dir (default: $HOME)
|