Скрипт для очистки корзины не работает
Я создал скрипт корзины на Minix. Я перемещаю файл, который будет удален, в папку, а не удаляю ее. Я использовал команду alias в команде rm, чтобы использовать скрипт вместо rm. Проблема сейчас в том, что я должен очистить корзину. Я написал этот сценарий:
#!/bin/sh
unalias rm
rm -r "/home/recyclebin/*"
alias rm='/home/scriptrm.sh'
#
В этом сценарии я отменяю команду rm, так что я могу использовать ее снова, затем очищаю корзину, а затем снова псевдоним rm со сценарием, который перемещает файлы в корзину. Когда я запускаю этот скрипт, он ничего не делает. Я пытался только запустить скрипт для unalias rm, но rm продолжает с псевдонимом. Кто-нибудь знает, что происходит?
Спасибо.
1 ответ
Несколько вещей, чтобы исправить.
Вы (дважды) цитируете свой шар (
*
), поэтому он не будет расширяться до чего-либо (кроме случаев, когда у вас есть файл с именем*
там).Ваш сценарий будет выполняться в подпроцессе, поэтому установка / сброс псевдонимов и т. Д. Не будет иметь никакого эффекта в родительской оболочке, которая вызывает ваш сценарий. IOW, вам не нужно добавлять псевдоним обратно в исходную форму в конце. И он не наследует псевдонимы вашей существующей родительской оболочки. Они не экспортируются от родителя.