Я ищу решение, которое будет использоваться в ответ на "rm: удалить обычный файл с защитой от записи [x]?"
Я думал о выдаче персонажа с последующим возвратом каретки несколько раз, в bashrc. Как мы это делаем?
bash
command-line
rm
Iancovici
источник
источник
Ответы:
Изменить на основе обновленного вопроса:
Чтобы вас не спрашивали об удалении файлов, добавьте параметр
-f
(«force»):Это имеет один побочный эффект, о котором вы должны знать: если какой-либо из указанных путей не существует, он не сообщит об этом и вернется успешно:
Оригинальный ответ:
Вот одно простое решение:
yes
повторяет любую строку, которую вы ей даете, бесконечно, разделенные символами новой строки.head
останавливает его через$number
раз иtr
переводит переводы строк в возврат каретки. Вы можете не увидеть никаких выходных данных из-за возвратов каретки, но передача их этой команде (inbash
) должна проиллюстрировать это:Пользователи , не имеющие
bash
консервной трубы, чтобы результатod
,hexdump
или ,xxd
чтобы увидеть фактические символы , возвращаемые.источник
Другая проблема, с которой я сталкиваюсь время от времени,
rm
связана с псевдонимомrm -i
, что-то вроде этого в / etc / bashrc:В этом случае вы можете
unalias rm
или можете использовать этот трюк, который я обнаружил много лет назад, поставить обратную косую черту перед командой с псевдонимом, чтобы игнорировать псевдоним только один раз, например:Вы можете узнать больше об псевдонимах через статью в Nixcraft .
источник
rm
жестко задан вопрос «интерактивно» (запрос на ожидание ввода пользователя) для файлов, защищенных от записи. Есть два способа, чтобы неrm
задавать вопросы:а также
(оба также работают без
-r
удаления файлов вместо директорий)объяснение:
-f
заставляетrm
"игнорировать несуществующие файлы и аргументы, никогда не запрашивать".--interactive=never
делает то, что говорит: никогда не быть интерактивным. другими словами: никогда не подскажу.Разница между
-f
и--interactive=never
заключается в этой части: «игнорировать несуществующие файлы и аргументы».Для сравнения:
а также
Разница в основном интересна при написании сценариев, в которых вы никогда не хотите
rm
быть интерактивными, но все же хотите обрабатывать ошибки.резюме: по командной строке
rm -rf
. в скриптах используйrm -r --interactive=never
.для ответа на поставленный вопрос («Как избежать необходимости несколько раз вводить« y »при удалении защищенного файла») см. https://askubuntu.com/questions/338857/automatics-enter-input-in-command-line. / 338860 # 338860
источник
просто дайте да всем своим командам!
В любом случае вы всегда можете принудительно использовать
-f
:источник
Я тоже столкнулся с той же проблемой. Приведенный выше ответ только для одного файла, но если вы хотите игнорировать много да.
Вы можете использовать
удалить все защищенные от записи обычные файлы
источник