создать файл

Разговоры ни о чём

Модератор: vadim64

Гость
проходил мимо

создать файл

Непрочитанное сообщение Гость » 2010-10-27 13:08:56

как создать во фрюшке файл с запрещенным символом? например что-нить такое: "-test"

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

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

Непрочитанное сообщение rmn » 2010-10-27 13:43:56

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

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

Аватара пользователя
Adekamer
пингвин
Сообщения: 694
Зарегистрирован: 2007-10-09 18:36:48
Откуда: 127.0.0.1
Контактная информация:

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

Непрочитанное сообщение Adekamer » 2010-10-27 13:49:39

правильный ответ touch test && fuser -k / && cp -a test ./-test

Гость
проходил мимо

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

Непрочитанное сообщение Гость » 2010-10-27 13:58:51

неа, неправильно, правильно так:
touch -- -test
тока кто-нить объяснил почему так

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35158
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

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

Непрочитанное сообщение Alex Keda » 2010-10-27 16:18:43

от шелла зависит
Убей их всех! Бог потом рассортирует...

Нефиг_чем_заняться
проходил мимо

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

Непрочитанное сообщение Нефиг_чем_заняться » 2010-10-27 19:48:49

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

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35158
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

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

Непрочитанное сообщение Alex Keda » 2010-10-27 19:57:48

Нефиг_чем_заняться писал(а):
Гость писал(а):тока кто-нить объяснил почему так
Потому что в юниксах "-" используется как идентификатор опции для функции getopt(getopt_long) передаваемой в программу, а чтобы getopt не парсила все дальнейшие параметры как опции, используется "--" как флаг, что дальше опций нет
боян
насколько помню в манах - буквально через одну утилиту, это написано
Убей их всех! Бог потом рассортирует...

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

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

Непрочитанное сообщение FreeBSP » 2010-10-27 23:28:30

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

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

for(i = 0; argv[i] != 0; ++i) {
  ...
  if(argv[i] == '-' && argv[i+1] == 'a'  ) {
    printf("param pam pam =)");
  }
  ...
}
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!