Почему я не могу удалить файл с помощью скрипта Bash?

11172
CamelBlues

Я не могу запустить rmскрипт Bash и удалить файл.

#!/bin/bash rm -rf myjunk.out exit 0; 

не снимает myjunk.out.

1
Избавьтесь от `выхода 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

Похожие вопросы