Linux -- это интересно

Корзина в консоли


Если вы время от времени сталкивайтесь с такой неприятностью, как случайное удаление нужных файлов в консоли, то эта заметка может оказаться для вас полезной... Решить проблему проще всего прописыванием алиаса с rm на какую-либо другую команду в ~/.bashrc.

Для Gnome:

Пользователям Gnome проще всего добавить в выше озвученный файл строку:

alias rm='gvfs-trash'

Ваши файлы будут перемещены в гномовскую корзину, которую можно регулярно очищать, как это делается обычно, либо восстанавливать необходимые файлы.

Физически корзина находится тут:

~/.local/share/Trash

Команду gvfs-trash можно легко заменить скриптом:

#!/bin/bash
echo $FULLNAME
if [ $1 ]; then
if [ $1 == "--help" ]; then
    echo "Usage: delete [path/filename]"
    echo "Delete is a safer alternative to rm (remove), as Delete will send your file to the Gnome Wastebasket."
else
    cd `dirname $1`
    pathname=`pwd`
    filename=$1 ##*/
if [ $pathname != "/" ]; then
    fullname="$pathname/$filename"
else
    fullname="/$filename"
fi
    mv $1 ~/.local/share/Trash/files/
    timestamp="`date +%Y`-`date +%m`-`date +0`T`date +%X`"
    echo -e "[Trash Info]\nPath=$fullname\nDeletionDate=$timestamp" >> ~/.local/share/Trash/info/$filename.trashinfo
fi
else
    echo -e "$0: missing operand\nTry '$0 --help' for more information."
fi

Делает она в точности то же самое!

Для KDE:

Пользователям KDE может больше понравится скрипт в архиве. Рекомендуется rmv скопировать в /usr/local/bin и в ~/.bashrc добавить строку:

alias rm='rmv'

А rmvrc поместь в ~/.rmw/ (которую нужно будет предварительно создать).

Ключи к rmw можно использовать те же, что и к rm, например: -f (без лишних вопросов) и -r (рекурсивно), но, кроме того, есть ключ -u, который отменит последнее удаление!

Общий случай:

Конечно, можно просто вместо rm применять mv, например:

alias rm='mv -t ~/.Trash'

Вместо ~/.Trash можно использовать любую другую директорию.

Комментариев: 2 RSS
Pavel Vyazovoi1 2009-09-01 в 13:39:52

Помнится был модуль ядерный, который перехватывал функцию unlink, т.е. абсолютно любое удаление перемещалось в "корзину"

Оставьте комментарий!
Используйте нормальные имена.Войти через loginza
Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



 
(обязательно)