Почему я не могу удалить файл с помощью скрипта Bash?
11172
CamelBlues
Я не могу запустить rmскрипт Bash и удалить файл.
#!/bin/bash rm -rf myjunk.out exit 0;
не снимает myjunk.out.
Избавьтесь от `выхода 0` и проверьте сообщения об ошибках.
ChrisF 13 лет назад
1
И это работает, когда вы просто выполняете `rm -rf myjunk.out` из командной строки? Что вызывает выполнение этого скрипта?
BloodPhilia 13 лет назад
0
Для справки: -r предназначен для спуска по каталогам (рекурсивно), поэтому, если вы собираетесь удалить файл, -r бесполезно. Какая у вас ошибка ? Как вы запускаете этот скрипт? Каковы разрешения на этот скрипт?
Torian 13 лет назад
2
@BloodPhilla это вызвано, потому что myjunk.out сгенерирован ранее в сценарии .... @Torian -r был там, потому что я просто пробовал что-то
CamelBlues 13 лет назад
0
2 ответа на вопрос
4
beth22
Во-первых, убедитесь, что вы можете удалить myjunk.out без запуска вашего скрипта; если нет, проверьте атрибут файла с помощью lsattr.
Во-вторых, вам не нужно предоставлять exit 0;
Позже укажите путь к myjunk.out, например:
rm -rf /path/to/myjunk.out
Также удалите флаг `-r`. это ненужно и опасно.
Keith 13 лет назад
0
Собственно вынимая выход 0; позволил rm instal.out правильно выполнить. Спасибо!
CamelBlues 13 лет назад
0
Каково объяснение: почему «выход 0» сделает рм не работающим
Emmanuel Devaux 10 лет назад
0
0
Klaas-Z4us-V
The -f option inhibits error messages. The man page says:
Attempt to remove the files without prompting for confirmation, regardless of the file's permissions. If the file does not exist, do not display a diagnostic message or modify the exit status to reflect an error. The -f option overrides any previous -i options.
I've emphasised the part that is relevant; to get worthwhile warnings, you should remove the option flags from your rm command:
rm myjunk.out
Это скорее комментарий, чем ответ.
Chenmunka 8 лет назад
0