Удаление файлов из bash linux с возможностью восстановления

Удаление файлов из bash linux с возможностью восстановления

    Пример

    Чтобы использовать данный скрипт в деле, необходимо сделать алиас для команды rm

    alias rm=yourpath/newrm

    Сценарий требует доработки

    #!/bin/bash archivedir="$HOME/.deleted-files" realrm="$(which rm)" copy="$(which cp) -R" #копировать рекрусивно if [ $# -eq 0 ] ; then #если кол-во поз. параметров = 0, тогда вытеснить процесс командной rm exec $realrm fi flags="" while getopts "dfiPRrvW" opt #допустимые опции do case $opt in f ) exec $realrm "$@" ;; #покинуть сценарий немедленно * ) flags="$flags -$opt" ;; #сохранить опции esac done shift $(( $OPTIND -1 )) #сместить #--------------------------------------------------------------------------------- if [ ! -d $archivedir ] ; then if [ ! -w $HOME ] ; then echo "$0 failed: can'not created $archivedir in $HOME" >&2 exit 1; fi mkdir $archivedir chmod 700 $archivedir fi for arg #список файлов, которые удаляются do newname="$archivedir/$(date "+%S.%M.%H.%d.%m").$(basename "$arg")" #создать директорию + файл if [ -f "$arg" -o -d "$arg" ] ; then #если файл существует или каталог существуют и являются ими $copy "$arg" "$newname" #копия файлов в newname fi done exec $realrm $flags "$@" #Текущий сценарий будет вытеснен командой realrm с опциями
    Источники
    Последнее изменение: 10.10.2024 04:29


    Связанные темы
    Здесь пока нет комментариев
    Добавлять комментарии могут только авторизованные пользователи

    Авторизоваться
    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ