Страница 1 из 1

создать файл

Добавлено: 2010-10-27 13:08:56
Гость
как создать во фрюшке файл с запрещенным символом? например что-нить такое: "-test"

Re: создать файл

Добавлено: 2010-10-27 13:43:56
rmn

Код: Выделить всё

touch \-test
а, нет. touch так не создает, ee \-test или cat /dev/null > \-test работают

Re: создать файл

Добавлено: 2010-10-27 13:49:39
Adekamer
правильный ответ touch test && fuser -k / && cp -a test ./-test

Re: создать файл

Добавлено: 2010-10-27 13:58:51
Гость
неа, неправильно, правильно так:
touch -- -test
тока кто-нить объяснил почему так

Re: создать файл

Добавлено: 2010-10-27 16:18:43
Alex Keda
от шелла зависит

Re: создать файл

Добавлено: 2010-10-27 19:48:49
Нефиг_чем_заняться
Гость писал(а):тока кто-нить объяснил почему так
Потому что в юниксах "-" используется как идентификатор опции для функции getopt(getopt_long) передаваемой в программу, а чтобы getopt не парсила все дальнейшие параметры как опции, используется "--" как флаг, что дальше опций нет

Re: создать файл

Добавлено: 2010-10-27 19:57:48
Alex Keda
Нефиг_чем_заняться писал(а):
Гость писал(а):тока кто-нить объяснил почему так
Потому что в юниксах "-" используется как идентификатор опции для функции getopt(getopt_long) передаваемой в программу, а чтобы getopt не парсила все дальнейшие параметры как опции, используется "--" как флаг, что дальше опций нет
боян
насколько помню в манах - буквально через одну утилиту, это написано

Re: создать файл

Добавлено: 2010-10-27 23:28:30
FreeBSP
Нефиг_чем_заняться писал(а):
Гость писал(а):тока кто-нить объяснил почему так
Потому что в юниксах "-" используется как идентификатор опции для функции getopt(getopt_long) передаваемой в программу, а чтобы getopt не парсила все дальнейшие параметры как опции, используется "--" как флаг, что дальше опций нет
почитай исходники разных прог
getopt конечно классный, но нередко просто так идет разбор опций - ручками

Код: Выделить всё

for(i = 0; argv[i] != 0; ++i) {
  ...
  if(argv[i] == '-' && argv[i+1] == 'a'  ) {
    printf("param pam pam =)");
  }
  ...
}