Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

не могу стереть фаил....

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix
Предыдущая тема :: Следующая тема  
Автор Сообщение
совсем незнакомый



Зарегистрирован: 24.12.2003
Сообщения: 183
Откуда: Israel

СообщениеДобавлено: Чт Янв 15 2004 17:55    Заголовок сообщения: не могу стереть фаил.... Ответить с цитатой

люди... интересный глюк на Solaris 9 [SunOS 5.9]
не могу стереть фаил по имени "-oPort=1231"
оболочка - /bin/tcsh
имею на фаил полные права...
это ssh плеванулся....

пробовал:
rm -f -oPort=1231 или rm -f "-oPort=1231", rm -f \-oPort\=1231 ,
rm -rf *1231

получил:
rm: illegal option -- o
rm: illegal option -- P
rm: illegal option -- o
rm: illegal option -- t
rm: illegal option -- =
rm: illegal option -- 2
rm: illegal option -- 2
rm: illegal option -- 2
rm: illegal option -- 2
usage: rm [-fiRr] file ...

как будем стирать ?

Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
совсем незнакомый



Зарегистрирован: 24.12.2003
Сообщения: 183
Откуда: Israel

СообщениеДобавлено: Чт Янв 15 2004 17:59    Заголовок сообщения: Ответить с цитатой

стёр:
rm -rf "\-oPort=1231"

Embarassed
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Чт Янв 15 2004 20:48    Заголовок сообщения: Ответить с цитатой

Мы все за теб очень рады! Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
test13



Зарегистрирован: 09.01.2004
Сообщения: 43

СообщениеДобавлено: Пт Янв 16 2004 02:48    Заголовок сообщения: Ответить с цитатой

Когда же люди будут читать man'уалы? ):
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
LL



Зарегистрирован: 12.01.2004
Сообщения: 103
Откуда: S-Pb

СообщениеДобавлено: Пт Янв 16 2004 10:23    Заголовок сообщения: Ответить с цитатой

Когда читать научаться Laughing
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
совсем незнакомый



Зарегистрирован: 24.12.2003
Сообщения: 183
Откуда: Israel

СообщениеДобавлено: Пт Янв 16 2004 14:35    Заголовок сообщения: Ответить с цитатой

pardon, people!

всё я наврал: то есть, ни фига этот шелл не стёр. "-о" - во всех оболочках [которые имеются на сервере] имеет особое значение.
можно выключить парсинг имён файлов. но не нашёл я комманды
которой можно отключить попытку "понять" "-о" в начале слова в строке.
короче моя гипотеза: оболочкой тут не справиться.
надо либо perl либо C либо ...

а всем злодеям ... создайте такой файлик... и попробуйте стереть оболочкой. кстати забыл добавить :
пробовал -b в tcsh - он не работает. расшифровывает как миленький.
а стёр я файл с помощью sftp, но это вовсе не победа :/



tак что - стерляйте идеями как можно заставить _оболочку_ стереть файл.
[кроме как RTFM или сажите какой ман смотреть]

Surprised
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
LL



Зарегистрирован: 12.01.2004
Сообщения: 103
Откуда: S-Pb

СообщениеДобавлено: Пт Янв 16 2004 14:52    Заголовок сообщения: Ответить с цитатой

Интересно, кто это подрузамевается под словом злодеи... Question
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ryabinkin



Зарегистрирован: 01.12.2003
Сообщения: 152
Откуда: Moscow

СообщениеДобавлено: Пт Янв 16 2004 16:52    Заголовок сообщения: Да, интересно... Ответить с цитатой

Действительно, оказывается файл с именем -o создать нелегко...
Я создал его в mc и с его же помощью стер. Эксперименты продолжаются...

Так вот, финал экспериментов:
создание файла с именем -о
touch -- -o
стирание его:
rm -- -o
Главное это -- !!!
_________________
Из двух спорящих виноват тот, кто умнее.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dmitry.Karpov



Зарегистрирован: 30.11.2003
Сообщения: 415
Откуда: Moscow

СообщениеДобавлено: Пт Янв 16 2004 18:02    Заголовок сообщения: Ответить с цитатой

Я такие вещи давлю так:
rm ./имя_файла

или так:
rm /полный/путь/имя_файла

или так:
touch временный_файл; rm временный_файл имя_файла

А самый правильный путь - подавить интерпретацию дальнейших аргументов как ключей:
rm -- имя_файла
_________________
Благословен Бог, сотворивший меня сисадмином!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
совсем незнакомый



Зарегистрирован: 24.12.2003
Сообщения: 183
Откуда: Israel

СообщениеДобавлено: Пт Янв 16 2004 19:42    Заголовок сообщения: Ответить с цитатой

Спасибо всем!

вот, блин.
Confused
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
совсем незнакомый



Зарегистрирован: 24.12.2003
Сообщения: 183
Откуда: Israel

СообщениеДобавлено: Сб Янв 17 2004 06:28    Заголовок сообщения: Ответить с цитатой

вопросик один остался... если взять операции затирания в фаиловой системе как работу обязательную [стирать где-то надо будет] и зависящую от самой файловой системы,
то трудоёмкость операции заключается в переработке ввода - т.е.:
с каким вводом быстрее дойдём до вызова unlink()

моя гипотеза - полный путь будет самым быстрым,
потом "./", а только потом - опция с "--" .

говорю без подглядывания в код. если кто заглядывал - попрошу
высказаться;
ну в общем, а как вы думаете ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dmitry.Karpov



Зарегистрирован: 30.11.2003
Сообщения: 415
Откуда: Moscow

СообщениеДобавлено: Сб Янв 17 2004 15:44    Заголовок сообщения: Ответить с цитатой

При наличии в командной строкЕ "--" это разбирает сама программа rm, аргументы которой находятся вместе/рядом (близко друг к другу в оперативной памяти); так же плотно находится в памяти её код. При разборе "./имя_файла" приходится обращаться в директории "точка" (есть такая запись в каждой директории), а это уже вызывает опрос её inode. А при обращении через корень опрашиваются все записи и inodes по пути к файлу, что ещё более увеличивает вероятность обращения к жёсткому диску (а это - жутко долгая операция).

Твоя ошибка в том, что ты не рассматриваешь работу функции unlink(). Попробуй сам набросать черновик этой функции даже без проверки прав доступа и обновления времени последнего доступа.
_________________
Благословен Бог, сотворивший меня сисадмином!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
совсем незнакомый



Зарегистрирован: 24.12.2003
Сообщения: 183
Откуда: Israel

СообщениеДобавлено: Вс Янв 18 2004 02:47    Заголовок сообщения: Ответить с цитатой

после:
truss -а rm -- -o
дало мне:
execve("/usr/bin/rm", 0xFFBFFC74, 0xFFBFFC84) argc = 3
argv: rm -- -o
то есть, rm таки получает "--".

Спасибо всем за поучение. и злодеям тоже
Laughing
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dmitry.Karpov



Зарегистрирован: 30.11.2003
Сообщения: 415
Откуда: Moscow

СообщениеДобавлено: Вс Янв 18 2004 12:13    Заголовок сообщения: Ответить с цитатой

совсем незнакомый писал(а):
то есть, rm таки получает "--".

А кто в этом сомневался? Командную строкУ превращает в аргументы (массив argv[]) shell, а минус он будет рассматривать как спецсимвол только внутри квадратных скобок.

Что-то у тебя нет понимания, какой программный компонент что делает, а без этого возможны самые дикие ошибки.

PS: А что такое "lol"?
_________________
Благословен Бог, сотворивший меня сисадмином!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
crash



Зарегистрирован: 02.11.2001
Сообщения: 1836
Откуда: Бердск

СообщениеДобавлено: Вс Янв 18 2004 12:25    Заголовок сообщения: Ответить с цитатой

Dmitry.Karpov писал(а):
PS: А что такое "lol"?

вроде это Laughing хотя хрен его знает на самом деле)))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
совсем незнакомый



Зарегистрирован: 24.12.2003
Сообщения: 183
Откуда: Israel

СообщениеДобавлено: Вс Янв 18 2004 12:53    Заголовок сообщения: Ответить с цитатой

Dmitry.Karpov писал(а):

А кто в этом сомневался?
Командную строкУ превращает в аргументы (массив argv[])
shell, а минус он будет рассматривать как спецсимвол только внутри квадратных скобок.

объясняю сомнения. Было дело и писал оболочку ручками.
не сравнивал с кодом живых шеллов, сознаюсь. Но это была домашка, и писали ея усердно. Возник вопрос:
"оболочка кого от кого?" В процессе разработки вывод был:
Оболочка _должна_ разделять юзверей от утилит - чтобы дырка в утилитках не дырявила систему.
(возможна конечно и дырка в Шелле - это понятно)
поэтому argv[] утилит не был полной копией "оболочкиного" argv[]


Цитата:

Что-то у тебя нет понимания, какой программный компонент что делает, а без этого возможны самые дикие ошибки.

Стормозил.
Исходя из предыдущего. ведь кто что делает - это решение, к-рое принимает создатель шелла (на этот раз - не я ).

Цитата:

PS: А что такое "lol"?

это наверное ты форум через links/lynx читаешь.
а в мозиллах тут морды рисуются.. т.н. BBcode.
":lol:" это морда смайлик (от англ. "laughing out loud")
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dmitry.Karpov



Зарегистрирован: 30.11.2003
Сообщения: 415
Откуда: Moscow

СообщениеДобавлено: Вс Янв 18 2004 13:08    Заголовок сообщения: Ответить с цитатой

совсем незнакомый писал(а):
Было дело и писал оболочку ручками.
не сравнивал с кодом живых шеллов, сознаюсь. Но это была домашка, и писали ея усердно. Возник вопрос:
"оболочка кого от кого?" В процессе разработки вывод был:
Оболочка _должна_ разделять юзверей от утилит - чтобы дырка в утилитках не дырявила систему (возможна конечно и дырка в Шелле - это понятно); поэтому argv[] утилит не был полной копией "оболочкиного" argv[]
Совершенно неправильное понятие, т.к. shell впринципе не может знать, что будет делать та или иная программа; его дело - запускать программы по интерактивным запросам юзера либо по указаниям скрипта.

И ещё раз повторяю: shell получает единую неразрывную строкУ ввода и сам нарезает её на аргументы. Т.е. оболочка не получает argv[] (а если и получает, то sh, csh, bash и т.п. всё равно её перекорёживают).

совсем незнакомый писал(а):
Исходя из предыдущего. ведь кто что делает - это решение, к-рое принимает создатель шелла (на этот раз - не я).
Дык и программу rm писАл кто-то другой, а твоё дело - заставить всю систему (shell, rm, kernel) делать то, что тебе нужно.
_________________
Благословен Бог, сотворивший меня сисадмином!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...