1
Мне было интересно, как обращаться с файлами с именами флагов, такими как «-a», «-f» и т. Д. Я не могу передавать их в качестве аргументов для таких программ, как rm
или ls
, потому что они интерпретируются как флаги, а rm *
или ls *
просто запускает эти программы с флагами имен файлов (по понятным причинам). Как передать флаги как обычные имена файлов в аргументах программы?Как обращаться с файлами, имена которых являются флагами
также: rm-- -a будет работать на некоторых, но не во всех системах UNIX. Двойная тире переводится как «конец опций». Это означает, что вызов getopt() не будет пытаться сделать -a опцией вместо имени файла, что является вашим намерением. –
Чтобы добавить к тому, что @jimmcnamara сказал: «Специальный аргумент' --' заставляет во всех случаях завершать проверку параметров. " (цитируется из «Использование функции getopt» http://www.gnu.org/software/libc/manual/html_node/Using-Getopt.html#Using-Getopt) – devnull