Предотвращение случайного удаления каталогов. Создание псевдонима, содержащего параметры?

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

Для файлов у меня есть следующее, добавленное в мой .bashrc :

 alias rm="rm -i" 

Я также хотел бы предотвратить случайное удаление каталога, который я попытался сделать:

 alias rm -rf="rm -rfi" 

и это:

 alias "rm -rf"="rm -rfi" 

Но никто не работает. Какие-либо предложения?

2 Solutions collect form web for “Предотвращение случайного удаления каталогов. Создание псевдонима, содержащего параметры?”

Из bash (1):

Алиасы

[…] Первое слово каждой простой команды, если оно не зарегистрировано, проверяется на наличие псевдонима […] Символы […] и любые метасимволы оболочки или цитируемые выше символы могут не отображаться появляются в псевдониме.

Таким образом, псевдонимы могут быть только одним словом без кавычек.

Использование обоих -f и -i в вызове rm также не имеет большого смысла, поскольку они несколько противоречивы (rm (1)):

-f, –force игнорировать несуществующие файлы и аргументы, никогда не запрашивать

-i перед каждым удалением

Но вот что хорошо: ваш псевдоним rm фактически используется, даже когда вы вызываете rm -r , потому что первое слово – rm – имеет псевдоним – rm -i , поэтому его заменяет это!

 $ alias rm bash: alias: rm: not found $ alias rm='rm -i' $ mkdir test $ rm -r test rm: remove directory 'test'? 

/ edit: Рафаэль Аренс также упомянул в комментариях, что использование -f (force) не является необходимым для удаления каталогов (как это уже видно в моем примере), -r (рекурсивный) достаточно один:

-r, -R, –рекурсивно удалять каталоги и их содержимое рекурсивно

Псевдонимы rm опасны. Как только вы на коробке, у которой нет этих псевдонимов, вы нанесете некоторый урон.

Что касается «предотвращения случайного удаления каталога», то для начала используется флаг -r .

Пожалуйста, не переопределяйте такие команды, вы никогда не знаете, какие сценарии допущений будут делать. Если нужно, выберите другое имя, кроме rm , иначе измените что-то в своем rm -rf которое не позволяет использовать rm -rf с пренебрежением.

  • Как удалить файлы, символические в одной папке, но оставить свои подкаталоги без изменений?
  • Удаление файлов / папок с файлами .nfs
  • Как я могу удалить только зарегистрированные файлы в каталоге без каких-либо подсказок?
  • Можно ли удалить каталог в постоянное время?
  • Почему было отключено мое устройство после того, как «rm» сохранил мои файлы?
  • Как удалить этот неуправляемый каталог?
  • Удалить каталог в ftp
  • Каков наилучший способ форматирования жесткого диска в Linux, чтобы не оставлять следов?
  • Не удалось удалить файл в Fedora
  • Почему моя команда: «rm -rf *» не удаляет все файлы в каталоге?
  • Удалить файлы с совпадением только из некоторых подкаталогов
  • Interesting Posts

    Ярлык клавиатуры Tmux

    Можно ли отключить нажатие на клик в конфигурации X-сервера без разделов «InputClass»?

    Как использовать grep, sort и uniq для создания трех полей вывода

    Выполните процесс в текущей области, перенаправляя stdio в / из панели

    Блокировка блокировки SMTP с помощью белого списка

    Как я могу рассчитать среднее значение для каждой строки, исключая первое значение каждой строки?

    Запустить команду с sudo по умолчанию

    Изменить фон терминала из сценария bash в платформе, независимо от среды рабочего стола?

    Плагин Xfce4 WaveLAN не работает – проблема с разрешением?

    Я застрял в следующем шаге по настройке двойной загрузки для Windows 7 и Arch Linux

    Regex в заявлении case

    несколько заданий cron на одной строке (выполняется последовательно

    Взаимодействие с веб-страницей через скрипт?

    Объедините дублированные строки и добавьте «N / A» в конце

    Список последовательных устройств на FreeBSD

    Linux и Unix - лучшая ОС в мире.