Ответы:
Нет общего «отмены» для каждой операции в терминале. Если вы хотите восстановить файл после использования, rm
вам нужно поискать программное обеспечение для восстановления.
Чтобы предотвратить возможные ошибки в будущем, нужно alias
указать альтернативные команды для удаления файлов. Добавьте их к себе ~/.bashrc
и получите привычку использовать их вместо rm
.
псевдоним rmi = 'rm -i'
Если вы используете rmi
, вам будет предложено подтвердить удаление в будущем. Старайтесь не развивать привычку нажимать y
сразу после того, как вы выполните rmi
команду, так как это победит цель.
Вы также можете переместить файлы, удаленные trsh
командой в терминале, в вашу корзину (в KDE и Gnome):
alias trsh='mv --target-directory="$HOME/.Trash"'
Если вы используете trsh
, у вас будет ограниченная возможность «восстановить». Остерегайтесь этого
trsh dir1/file1 dir2/file1
все еще может вызвать невосстановимую потерю данных.
rm
в rm -i
том , что вы привыкнете к сети безопасности , что она дает вам. Затем вы переходите на другую машину, у которой нет этого псевдонима ...
rmi
-> rm -i
. Это действительно ошибка - просто мешать существующей программе, создавая псевдонимы для нее.
Вы можете использовать trash-cli, если вы используете KDE при запуске графического интерфейса. Это утилита командной строки для удаления / восстановления с использованием средств KDE.
alias rm=trash
что ваши типичные ошибки в командной строке идут с кнопками отмены.
alias rm=trash
это потенциально опасно, если есть шанс, что вы однажды будете использовать чужую систему и забудете (или ssh). Намного безопаснее просто привыкнуть к письму trash
вместо rm
.
Вы можете сделать rm
псевдоним для trash
команды ( trash
сначала вам нужно будет установить .) Добавьте это к вашему ~/.bashrc
:
alias rm='trash'
Это предпочтительнее, alias rm='mv --target-directory=$HOME/.Trash'
поскольку ~ / .Trash НЕ является папкой для мусора для gnome. ИМХО лучше дать trash
понять, где находится папка с мусором.
Кстати, я бы написал это в комментарии, но мне не хватает представителя.
Еще два технических решения пока не названы:
Здесь есть более крупный вопрос, который стоит рассмотреть. Команды оболочки не болтливы (они не проверяют дважды, что вы хотите), и они ожидают, что вы будете знать, что вы делаете. Это имеет основополагающее значение для их дизайна . Это особенность, а не ошибка.
Некоторые люди чувствуют себя мачо , когда они используют такие команды, которые я думаю , это довольно глупо, но это важно понимать опасность. Вы можете нанести большой урон в терминале, даже если вы не root. Я думаю, что вы, вероятно, действительно заботились rm
, но так как вы сказали: «Можем ли мы отменить операции, выполняемые в терминале», я подумал, что это стоит сказать. Общий ответ - нет, вы не можете.
Вариант 1. См. Восстановление файлов Linux из файловой системы ext2 . Эта страница указывает на программу, написанную Себастьяном Хетце из компании LunetIX, которая (как следует из названия) восстанавливает недавно удаленные файлы из файловой системы ext2. Пример использования:
# undelete -d /dev/hdc3 -a 10
Предупреждения:
Вариант 2: у меня на компьютере работает rsnapshot (rsync), который ежечасно делает снимки выбранных папок. Он постепенно делает это каждый час, 2 часа или все, что вы скажете CRON. После целого дня он перерабатывает эти снимки в один ежедневный снимок, а через 7 дней в неделю, и так далее, и так далее. Это позволяет мне возвращаться во времени примерно на месяц или около того на каждый час! Это довольно хорошо с дисковым пространством, поскольку он создает символические ссылки на файлы, которые никогда не менялись ...
Восстановление с помощью grep on /dev/partition
( Linux или Unix Восстановление удаленных файлов - восстановление файлов ),
grep -b 'search-text' /dev/partition > file.txt
Просто попробуйте.
Для ext2 существуют утилиты для восстановления, но большинство других файловых систем Linux застряли в каменном веке и не имеют каких-либо расширенных функциональных возможностей. Печальное положение дел, когда гигантские диски имеют достаточно места, чтобы никогда больше не удалять файл, являются обычным явлением.
Итак, вы застряли с тремя вариантами:
Регулярно делайте резервное копирование, например, с помощью такой команды:
rsync -axvRP --backup --backupdir=/backup/incr/$(date -I) /home/ /backup/root/
Используйте инструмент контроля версий, например, git
для всей вашей работы. Хотя это не защитит от сумасшедшего rm -r
, убивающего хранилище, оно защитит от обычных неприятностей, так как вы будете использовать git rm
не сырье rm
.
Будьте предельно осторожны и не доверяйте слишком многим rm -i
, trash-cli
друзьям, так как большую часть данных, которые вы потеряете в оболочке, вы потеряете не случайно rm
, а из-за неверно перенаправленных каналов, ошибочно набранных выходных файлов, неверного направления mv
и прочего, т. Е. Вещей, которые будут перезаписаны ваши данные, а не просто удалить их.
Сделайте все три для максимальной безопасности.
отметьте это ... может быть полезным http://artmees.github.io/rm/
Предположим, вы сделали
rm very_important_file
из терминала. восстановление этого файла - утомительный и не всегда успешный процесс
вместо этого, если вы использовали сценарий, упомянутый выше. вам не нужно беспокоиться об этом, потому что
rm very_important_file
mv very_important_file ~/.Trash/
эквивалентны. скрипт обрабатывает больше случаев и не изменяет вашу систему rm
вообще, потому что он помещается в локальную папку bin пользователя, поэтому он затеняет системный rm, но не влияет на него и не отключает его использование
это усовершенствованный подход к псевдонимам, но без потери какой-либо функции
Для меня (opensuse leap 42.2, NTFS pendrive) PhotoRec - также testdisk
создателями - работал :) Однако он не восстановил имена файлов.
PhotoRec - это программа для восстановления файловых данных, предназначенная для восстановления потерянных файлов, включая видео, документы и архивы, с жестких дисков, компакт-дисков и потерянных изображений (отсюда и название Photo Recovery) из памяти цифровой камеры. PhotoRec игнорирует файловую систему и работает с исходными данными, поэтому он все равно будет работать, даже если файловая система вашего носителя была серьезно повреждена или переформатирована.
Я установил его, используя стандартные репозитории в openSUSE
rm
: Он отменяет связь с файломinode
. Вопрос: «Куда идут файлы при вводеrm
команды» -> unix.stackexchange.com/questions/10883/… также может быть полезным для вас.