-f
Опция подавляет сообщения подтверждения при удалении файла только для чтения. Он также подавляет ошибки, когда один или несколько предоставленных файлов не существуют.
Эта -f
опция полезна, когда вы знаете, что некоторые файлы, которые вы удаляете, могут быть доступны только для чтения, и вы не хотите, чтобы вас об этом спрашивали.
Эта f
опция также полезна, когда вы хотите удалить некоторые файлы, если они существуют, и не хотите заботиться о том, существуют они или нет. Это очень часто используется в make-файлах для создания команды, которая удаляет файлы, которые можно восстановить из исходных файлов. Например, если он foo.o
может быть восстановлен из foo.c
, bar.o
может быть восстановлен из bar.c
, и myapp
может быть восстановлен из foo.o
и bar.o
, тогда цель makefile
clean:
rm -f *.o myapp
удаляет myapp
, foo.o
и bar.o
если они существуют, и не жалуется, если какой-либо из них не существует.
В том числе -f
в инструкции по удалению дерева каталогов нет необходимости в большинстве случаев. Это может быть оправдано, потому что, если вы уверены, что хотите удалить это дерево каталогов, независимо от того, что в нем находится, вы можете указать, -f
чтобы не получать запросы в случае, если некоторые файлы доступны только для чтения. Однако люди, которые говорят «бежать» rm -rf
, часто просто повторяют мистическое заклинание, чтобы избавиться от чего-либо, независимо от того, есть ли варианты -r
и -f
действительно ли они необходимы. Если параметры не нужны, они не рекомендуется, потому что они увеличивают риск того, что опечатка в аргументе уничтожит что-то важное.
-f
не избегает ошибки кода выхода. Еслиrm
попытаться удалить существующий файл не удастся, он вернет код ошибки.