NBash

Форк
0
44 строки · 1.0 Кб
1
#!/bin/bash
2

3
archivedir="$HOME/.deleted-files"
4
realrm="$(which rm)"
5
copy="$(which cp) -R"
6

7
if [ $# -eq 0 ]; then
8
	exec $realrm #Оболочка заменяется /bin/rm
9
fi
10

11
# Проверка на наличие флага -f
12

13
flags=""
14

15
while getopts "dfiPRrvW" opt
16
do
17
	case $opt in
18
		f ) exec $realrm "$@" ;;
19
		* ) flags="$flags -$opt" ;;
20
	esac
21
done
22
shift $(( $OPTIND - 1 ))
23

24
# Основной сценарий
25

26
# Гарантируем наличие каталога archivedir
27

28
if [ ! -d $archivedir ]; then
29
	if [ ! -w $HOME ]; then
30
		echo "$0 ошибка: Невозможно создать $archivedir в $HOME" >&2
31
		exit 1
32
	fi
33
	mkdir $archivedir
34
	chmod 700 $archivedir # Ограничиваем доступ для других пользователей
35
fi
36

37
for arg
38
do
39
	newname="$archivedir/$(date +"%S.%M.%H.%d.%m")-$(basename "$arg")"
40
	if [ -f "$arg" -o -d "$arg" ]; then
41
		$copy "$arg" "$newname"
42
	fi
43
done
44
exec $realrm $flags "$@" #Текущий сценарий замещается командой realrm
45

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.