История изменений
Исправление vodz, (текущая версия) :
legolegs, На самом деле нет никаких сложностей и для кавычек в имени:
#!/bin/bash
arch=0
del=0
use_ard=0
usage() {
echo "Usage $0 [-a[-d]]" 2>&1
exit 2
}
while getopts ":adX" o; do
case "$o" in
a) arch=1
;;
d) del=1
;;
X) use_ard=1;;
*) usage;;
esac
done
shift $((OPTIND-1))
ad() {
for i; do
if [[ $arch -eq 0 ]]; then
a=
read -p "Заархивировать каталог $i (y/n)? [y]: " a
case "${a:=y}" in
Y|[yY][eE][sS]) a=y ;;
esac
else
a=y
fi
if [[ $a == y ]]; then
echo zip -r `date "+%F"`.zip "$i"
if [[ $del -eq 0 ]]; then
a=
read -p "Удалить каталог $i (y/n)? [n]: " a
case "${a:=n}" in
Y|[yY][eE][sS]) a=y ;;
esac
else
a=y
fi
[[ $a == y ]] && echo rm -rf "$i"
fi
done
}
if [[ $use_ard -eq 1 ]]; then
ad "$@"
else
[[ arch -eq 1 ]] && a1=-a || a1=
[[ del -eq 1 ]] && a2=-d || a2=
find / -mindepth 1 -maxdepth 1 -type d -exec "$0" $a1 $a2 -X {} \;
fi
Исправление vodz, :
legolegs, На самом деле нет никаких сложностей и для кавычек в имени:
#!/bin/bash
arch=0
del=0
use_ard=0
usage() {
echo "Usage $0 [-a[-d]]" 2>&1
exit 2
}
while getopts ":adX" o; do
case "$o" in
a) arch=1
;;
d) del=1
;;
X) use_ard=1;;
*) usage;;
esac
done
shift $((OPTIND-1))
ad() {
for i; do
if [[ $arch -eq 0 ]]; then
a=
read -p "Заархивировать каталог $i (y/n)? [y]: " a
case "${a:=y}" in
Y|[yY][eE][sS]) a=y ;;
esac
else
a=y
fi
if [[ $a == y ]]; then
echo zip -r `date "+%F"`.zip "$i"
if [[ $del -eq 0 ]]; then
a=
read -p "Удалить каталог $i (y/n)? [n]: " a
case "${a:=n}" in
Y|[yY][eE][sS]) a=y ;;
esac
else
a=y
fi
[[ $a == y ]] && echo rm -rf "$i"
fi
done
}
if [[ $use_ard -eq 1 ]]; then
ad "$@"
else
[[ arch -eq 1 ]] && a1=-a || a1=
[[ del -eq 1 ]] && a2=-d || a2=
find / -mindepth 1 -maxdepth 1 -type d -exec $0 $a1 $a2 -X {} \;
fi
Исходная версия vodz, :
legolegsНа самом деле нет никаких сложностей и для кавычек в имени:
#!/bin/bash
arch=0
del=0
use_ard=0
usage() {
echo "Usage $0 [-a[-d]]" 2>&1
exit 2
}
while getopts ":adX" o; do
case "$o" in
a) arch=1
;;
d) del=1
;;
X) use_ard=1;;
*) usage;;
esac
done
shift $((OPTIND-1))
ad() {
for i; do
if [[ $arch -eq 0 ]]; then
a=
read -p "Заархивировать каталог $i (y/n)? [y]: " a
case "${a:=y}" in
Y|[yY][eE][sS]) a=y ;;
esac
else
a=y
fi
if [[ $a == y ]]; then
echo zip -r `date "+%F"`.zip "$i"
if [[ $del -eq 0 ]]; then
a=
read -p "Удалить каталог $i (y/n)? [n]: " a
case "${a:=n}" in
N|[nN][oO]) a=n ;;
esac
else
a=y
fi
[[ $a == y ]] && echo rm -rf "$i"
fi
done
}
if [[ $use_ard -eq 1 ]]; then
ad "$@"
else
[[ arch -eq 1 ]] && a1=-a || a1=
[[ del -eq 1 ]] && a2=-d || a2=
find / -mindepth 1 -maxdepth 1 -type d -exec $0 $a1 $a2 -X {} \;
fi