Если Вы хотите, чтобы Ваше приложение было доступно всем пользователям в системе, и у Вас есть необходимые полномочия, / использования выбирают. Если Вы хотите, чтобы приложение было доступно только для Вас (и корень), используйте/home/username
Linux (как другие нельды) исходно не обеспечивает функцию отмены. Философия - то, что, если это пошло, это пошло. Если это было важно, это должно было быть сохранено.
Существует файловая система предохранителя, которая автоматически сохраняет копии старых версий: copyfs, доступный во всех хороших дистрибутивах. Конечно, это может использовать много ресурсов.
Лучший способ защитить от таких несчастных случаев состоит в том, чтобы использовать систему управления версиями (cvs, базар, darcs, мерзавец, подвижный, подверсия...). Требуется немного времени для изучения, но это окупается удивительно в среднесрочном и долгосрочном.
-i
опция на rm
включенный по умолчанию. Мои системы Unix не должны содержать мою руку.
– xenoterracide
22.08.2010, 11:18
Нет ни в каком Unix нет никакой волшебной отмены. Unix предполагает, что Вы знаете то, что Вы делаете. Для Отмены поддержка использует VCS (Вашему текстовому редактору, вероятно, встроили его также).
Большинство файловых систем не имеет возможности выполнения его прозрачно.
Машина времени и восстановление системы на Mac и окнах соответственно являются просто системами резервного копирования/контроля изменений.
В командной строке нет никакой отмены. Вы можете однако, команды выполнения как rm -i
и mv -i
. Это предложит Вам с, "действительно ли Вы уверены?" вопрос, прежде чем они выполнят команду.
Также возможно добавить псевдоним для него к сценарию запуска (например. ~/.bashrc
или /etc/bash.bashrc
):
alias remove='rm -i'
alias move='mv -i'
Править: предложениями ниже, я удалил свой совет исказить команды по умолчанию. Вместо этого это представляет новые команды теперь).
mv -i
подсказки только, когда это перезаписало бы файл (который делает это полезным и не неприятный). В том же духе, alias cp='cp -i'
.
– Gilles 'SO- stop being evil'
22.08.2010, 12:54
Причина, что системы Linux/Unix не имеют восстановить после удаления основ от пути большинством файловых систем, хранит их информацию. Метаинформация файла все хранится перед диском со ссылками на inodes на остальной части диска. Как правило, большинство файловых систем выделяет 10 блоков файлу в этой метаобласти. Первые 7 относятся к первым 7 inodes. 8-е и 9-е движение к спискам inodes (вдвойне связанные блоки) и 10-е движения к списку списков списков (трижды связанные блоки). Это варьируется от файловой системы до файловой системы (ext4, jfs, xfs, и т.д.), но эти списки блоков могут обычно обращаться к размерам файла где угодно от 2 ГБ до нескольких ТБ.
Но потому что вся эта информация хранится перед диском, когда файл стирается, нет никакого способа сослаться на inodes на диске к тому, какие метаданные они используют для принадлежности. По контрасту FAT32 и NTFS на самом деле снабжают некоторую информацию заголовка самими файлами, помогающими определить, какой файл ряд использования блоков для принадлежности (пока то пространство еще не было освобождено более новыми файлами). В работе Linux при удалении чего-то это - почти всегда первая вещь, которая будет сразу перезаписана новыми данными для эффективности.
Если Вы действительно хотите функцию отмены, используйте управление исходным кодом. Подверсия на самом деле работает очень хорошо над машиной отдельного пользователя. Я использую его для управления всеми моими персональными файлами в моей домашней системе. Это походит на излишество, пока авария, сценарий жулика или опечатка командной строки не совершает нападки.
rm -r project.git
. К счастью, если Вы сохраните другую версию на удаленном сервере, то это вряд ли произойдет
– phunehehe
22.08.2010, 16:37
rm -r .
. Действительно быть глупо со стороны меня. использование
– Umang
22.08.2010, 19:43
Одной вещью, которую мне нравится добавлять к моему .bashrc, является копия, и удалите функцию. Что-то как:
cprm(){
cp -p $1 ~/deleted/$1
rm $1
}
Но необходимо выработать привычку ввода cprm не комната.
Очевидно, необходимо будет сохранить сверху удаленной области при ограничении дискового пространства.
"$1"
.
– user unknown
18.08.2011, 09:11
GitFS - это файловая система на основе плавких вставок, которая автоматически рассчитывает diff
между версиями и позволяет восстанавливать / просматривать их.
Веб-страница: https://www.presslabs.com/gitfs
Документы: https://www.presslabs.com/gitfs/docs/usage/