7

Я чувствую, что однажды мне это понадобится, например, если я просто удалил что-то, чего не должен был, или переименовал, и не могу вспомнить, как это должно называться, и т.д.

3 ответа3

8

Negative. В Linux нет волшебной кнопки отмены.

6

Нет.

Unix изначально не предоставляет функцию отмены. Философия заключается в том, что если он ушел, он ушел. Если бы это было важно, это должно было быть поддержано.


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

Многие команды могут быть отменены, например, перемещение файла может быть отменено путем перемещения файла назад. Команды, которые удаляют или перезаписывают файл, не могут быть легко отменены, если они вообще есть; некоторые из них можно сделать более устойчивыми к случайной потере данных с помощью настроек оболочки. Особенно:

  • В командной строке cp и mv перезапишут любой существующий целевой файл, но вы можете сделать так, чтобы они подсказали:

    alias cp='cp -i'
    alias mv='mv -i'
    

    Я рекомендую эти два псевдонима, потому что без них cp и mv выполняют две работы: копирование / перемещение и удаление. Отсутствие файлов удаления cp и mv больше соответствует философии Unix (одна команда выполняет одну работу) и менее подвержено ошибкам. (Это полностью отличается от rm -i , который запрашивает подтверждение перед выполнением своей работы - такая систематическая подсказка имеет тенденцию вызывать автоматический ответ и, таким образом, становится бесполезным раздражением.)

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

    set -o noclobber
    

Существует файловая система FUSE, которая автоматически сохраняет копии старых версий: copyfs, доступная для большинства устройств (* BSD, Linux, OS X, Solaris). Конечно, это может использовать много ресурсов.

Если вы переместили файл в другой каталог и запомнили (частично) его имя, но не его местоположение, вы можете воспользоваться командой locate чтобы найти его.


Лучший способ защиты от таких аварий - использовать систему контроля версий (cvs, bazaar, darcs, git, mercurial, subversion, ...). Это займет немного времени, чтобы учиться, но это окупается в среднесрочной и долгосрочной перспективе.

0

Здесь нет опции "отменить", только если вы использовали функцию "Корзина".

Чтобы восстановить удаленные файлы, это действительно зависит от того, какая файловая система у вас есть.

Есть:

Он поддерживает большинство основных файловых систем.

HFS Plus

Для HFS Plus (OS X) есть несколько коммерческих решений, таких как:

Подробнее: Восстановление файлов из отформатированного раздела HFS+


Для полного списка, проверьте:


Чтобы избежать подобных ситуаций, пожалуйста, делайте резервные копии чаще, используйте контроль версий или прочитайте, как заставить rm перейти в корзину.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .