Должен содержать `-rm` или` rm -f`

1369
Pål GD

Вопрос должен быть понятен из названия, но здесь идет.

Что лучше, или, есть ли лучшие варианты:

thing: rm -f a.file b.file doTheMake  thing: -rm a.file b.file doTheMake 

Я хочу всегда удалять a.fileи b.fileдо doTheMakeзапуска.

1

1 ответ на вопрос

2
Mahmoud Al-Qudsi

Это зависит от вашего намерения. Без -fфлага вы получите сообщение об ошибке и возвращаемое значение ошибки, если файл не существует. Make-файлы не продолжаются после ошибки (если вы не настроили их для этого). Если файл может существовать или не существовать, и вы хотите удалить его во всех случаях, -fэто правильное поведение. Если файл должен существовать из-за более раннего шага в цепочке инструментов, и вы хотите удалить его на этом этапе (т. Е. Ошибка, что он не существует на данном этапе), не используйте -f.

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

Большинство команд не имеют -fфлаг в первую очередь, и именно поэтому -префикс существует. Но rmделает. В этом случае вы должны использовать -префикс против -fфлага в зависимости от того, хотите ли вы, чтобы rm пожаловался на то, что файл не существует. Это, вероятно, вопрос стиля и предпочтений на данный момент, но подумайте о своих намерениях, файле, который вы удаляете, и т. Д. Я лично предпочитаю иметь make-файл без каких-либо -префиксов, потому что я считаю их скорее хаком, и я бы предпочел используйте rm -fвместо этого, но после этого объяснения, это ваш звонок.