Я использую терминал ежедневно, я буду часто использовать rm DirectoryName
. Иногда я немного схожу с ума и делаю rm *
. Как вы можете себе представить, эти махинации иногда возвращаются и бьют меня по лицу. Кто-нибудь знает, как я создаю отображение, поэтому rm whatever
перемещает все в корзину, которую я затем удаляю вручную.
62
mv /file/to/delete ~./Trash
alias rm=/bin/rm -i
должно вывести вас из безумия . Кроме того - какой каталог корзины вы хотите использовать rm? Это становится неуклюжим, поскольку в Mac OS X есть каталог для каждого тома, а также корзина на уровне пользователя.rm *
илиrm /path/*
Ответы:
Плохая идея
Использование
rm
для перемещения файлов в корзину похоже на травку. Это распространено и доставляет удовольствие, но может быть вредным для вас в будущем. ;)Вам действительно нужно контролировать себя при использовании
rm
.Не используйте рм
Представьте себе , вы привыкли к тому, что вы переезжаете в мусор и привыкаете к этому. Конечно, ваша система безопасна, но когда вы входите в блокнот друга (или вашей жены или вашего босса) и хотите что-то удалить? На самом деле вы будете использовать настоящие
rm
- удаляя эти файлы навсегда. Это плохая привычка, и ты должен это знать.Поэтому вместо этого установите
rmtrash
и привыкните использовать его:Исправление вредных привычек
Другая вещь, которую вы можете сделать, чтобы заставить себя использовать
rmtrash
вместоrm
псевдонима свое собственное сообщение в вашем.profile
.Таким образом, всякий раз, когда вы используете
rm
, вам будет предложено либо использоватьrmtrash
или/bin/rm
. Помните, что это только временно, через некоторое время вы должны удалить псевдоним.Никогда, не делай что-то вроде этого:
Pop Quiz: В каком каталоге будет
rm
работать команда? :)Ps: Просто удалил некоторые нежелательные правки в этом посте, что добавило чуши псевдонимов.
источник
&&
это ваш спасательный круг.;
это дьявол PS Ответ в том, что почти все в вашей системе исчезает, в приведенном выше примере.trash-cli
Вместо этого пользователи Debian / Ubuntu устанавливают , например,aptitude install trash-cli
- см. github.com/andreafrancia/trash-clibrew install trash
rmtrash
действительно старый, последний раз обновленный в 2003 году, и это показывает. У него гораздо меньше опций, чемrm
, и, если вы скажетеrmtrash
на дополнительном томе, он переместит эти файлы в корзину вашего пользователя на системном диске, что может занять много времени для больших файлов.trash
Вариант рекомендован Parth лучше, решая проблему Keep-на-же-громкости, но по- прежнему не хватает многоrm
вариантов.Я могу придумать дюжину способов закодировать это, но категорически отказываюсь вводить любой из них в ответ. Я настоятельно рекомендую вам избавиться от привычки немного сходить с ума . Вы не должны иметь привычку использовать
rm
вообще, если вы не можете использовать его должным образом.Фундаментальная проблема здесь заключается в том, что даже если вы установите систему безопасности в своей собственной системе, это только поможет вам сохранить ваши вредные привычки, и когда вы окажетесь когда-нибудь на другом компьютере, который не имеет таких же пользовательских защит, вы будете сделать что-то невероятно плохое.
Правильным решением является использование в том
rm
виде, в котором оно предназначено для использования, включая добавление-i
аргумента вручную, если у вас есть сомнения относительно расширения глобуса, и наличие хороших резервных копий системы, которые вы можете восстановить в случае серьезной ошибки пользователя. Попытка добавить «мусор» к командам, которые в остальной части вселенной не используют, это полпути, который является худшим из обоих миров.Или используйте мусор или не используйте. Использование
rm
не идет в мусор, он удаляет.Если вы хотите использовать корзину, в этом нет ничего плохого. Просто привыкните использовать
rmtrash
команду вместоrm
. Это поможет вашему мозгу понять, что происходит, и не приведет вас к плохой привычке, которая позже вызовет горе.источник
rm
по определению удаляет файл с диска. Он не отправляет его в корзину. Обучение тому, как использовать,rm
когда вы имеете в виду отправить в корзину, приводит вас к катастрофе. Если вы хотите отправить в корзину, использоватьrmtrash
или программу, которая была разработана для работы, то вы не столкнетесь с кошмарами позже. Я не говорил, что использование мусора по своей сути неправильно, но если вы хотите его использовать, не подключайте его к чему-то, что не предназначено для его использования!brew install rmtrash
и прекратить использоватьrm
rmtrash
вместоrm
.Есть способы защитить себя от ужасных последствий
rm
. Однако я согласен с другими комментаторами здесь: очень мало хороших.Ни на минуту не верьте, что изменение командной среды поможет вам. Например, вы найдете людей в Интернете везде, которые рекомендуют делать такие вещи:
или же
Это не будет работать. Период. Есть множество случаев использования, где эти маленькие хитрости салона потерпят неудачу.
Единственный надежный способ избавиться от опасности
rm
- настроить регулярный процесс резервного копирования через cron в каталогах, где я работаю. Raw UNIX делает это для вас хорошо, с большой простотой, используяfind
в сочетании с-mtime
проверкой файлов, которые были обновлены в течение определенного периода времени или позже.источник
cron
одного. Спасибо :)Используйте инструмент командной строки, такой как rmtrash или скрипт, который использует appscript для вызова Finder и удаления.
После установки rmtras сказать / usr / local / bin / rmtrash созданный псевдоним для bash
Вы можете использовать \ rm для прямого вызова rm и игнорировать псевдоним
источник
rmtrash
, сделайте себе одолжение и используйте его под собственным именем . Никогда псевдонимами вещи, которые неrm
доrm
, будет когда- нибудь укусить вас.rmtrash
несовместим сrm
(не поддерживает те же параметры командной строки, что и-r
), поэтому псевдоним действительно бесполезен в любом случаеrmtrash
кrm
. Мало того, что они не совместимы, но и это будет усиливать вредную привычку, и вы случайно будете использоватьrm
в другой системе, думая, что вы только используетеrmtrash
.Просто хочу добавить полезную привычку для тех, кто этого еще не делал. Прежде чем использовать rm для чего-либо, сначала выполните «ls». Таким образом, вы можете увидеть все файлы, которые вы собираетесь удалить. Затем, вместо того, чтобы перепечатывать, просто потяните предыдущую команду ls и замените ls на rm. Эта привычка уменьшила много беспокойства при вызове rm.
источник
Введение (вы можете пропустить это)
Для меня
rm -i
было бы достаточно, потому что он предлагает вам перед удалением любого файла. Тем не менее, некоторая дополнительная безопасность, предоставляемаяsafe-rm
вовсе не плохая идея.Простого
alias
лайкаrm=safe-rm -i
может быть достаточно, однакоrm -rf
он не сработает, поскольку-i
переопределяется-f
.Итак, мы должны быть уверены, что
-i
всегда последуем-f
!Мое решение (3 шага):
Установите safe-rm:
brew install safe-rm
Вы по-прежнему можете работать с
rm
, но вы должны изменитьRM_BIN
в следующем шагеОтредактируйте ваш
~/.profile
(или bash_profile или любой другой) и поместите следующий фрагмент кода, (который содержит иalias
иfunction
):Наконец ,
logout
иlogin
, следовательно, обновления в .profile применяются. НЕ используйте его до выхода / входа!Примечания:
-rf
и с регулярными выражениями.rm -rf
БЕЗ запроса на каждый файл / папку, которую вы все еще можете использовать/bin/rm -rf
(илиsafe-rm -rf
если вы установили его).rm -rf
илиrm *
;)источник
alias rm='sudo rm'
), все равно что привязать узи к кухонному ножу: когда-нибудь вы получите больше, чем рассчитывали, когда будете резать ананас. Привязывать rm к чему-то меньшему, чем он сам (напримерalias rm='rmtrash'
), все равно, что позволить своим детям играть с обезоруженными ручными гранатами и не учить их тому, чем они являются на самом деле: однажды, когда они столкнутся с настоящим, они не будут относиться к нему с должной осторожностью. В любом случае, псевдонимы rm вредны для вашей личной безопасности и здоровья населения!rm
? Кроме того, точка зрения Калеба еще более верна - если вы привыкнете к системе с псевдонимом safe-rm, вы можете быть опрометчивы с ней и в конечном итоге использовать ее в системе с несвязанным rm.