Упражнения на сообразительность ((для Bash))

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
Ratamahatta
Сообщения: 41

Упражнения на сообразительность

Сообщение Ratamahatta »

Взялся ознакомиться с программированием в оболочке, наткнулся на упражнение: "как записать символ '/' в название файла, не являющийся (символ) разделителем директорий (или как создать такой файл)" - никак не допетрю :(

Экранирование типа

mv(cp) a a\/a
или
mv(cp) a a'/'a

не прокатывает. У кого может есть идеи ?
Спасибо сказали:
Аватара пользователя
ddc
Бывший модератор
Сообщения: 3535
Статус: OpenBSD-compatible
ОС: OpenBSD -current

Re: Упражнения на сообразительность

Сообщение ddc »

Для Ratamahatta:
А что пишет на первую команду?
Спасибо сказали:
Аватара пользователя
Ratamahatta
Сообщения: 41

Re: Упражнения на сообразительность

Сообщение Ratamahatta »

сегодня дома посмотрю, скажу точно (сейчас я на работе)
Спасибо сказали:
Аватара пользователя
William Henry Gates
Сообщения: 493
Статус: ё-моё!!
ОС: jaunty

Re: Упражнения на сообразительность

Сообщение William Henry Gates »

имхо название файла со слешем недопустимо.
You are registered as user #384224 with the Linux Counter. jaunty jackalope & aspire 3650
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Упражнения на сообразительность

Сообщение t.t »

(czarker @ Четверг, 14 Апреля 2005, 9:34) писал(а):А что пишет на первую команду?
Можно и проверить.. Слеш не экранируеся просто. Вообще, никак.
(William Henry Gates @ Четверг, 14 Апреля 2005, 11:31) писал(а):имхо название файла со слешем недопустимо.
Мне тоже так кажется.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Ratamahatta
Сообщения: 41

Re: Упражнения на сообразительность

Сообщение Ratamahatta »

(t.t @ Четверг, 14 Апреля 2005, 15:10) писал(а):Слеш не экранируеся просто. Вообще, никак.

В том-то и дело что не экранируется моими способами.
Я на шел тут первоисточник у себя:
"Упражнение 3.6. (Хитрый вопрос.) Как ввести / в локальное имя файла (т. е. символ /, который не является разделителем компонентов в абсолютном имени)? " - смущает "Хитрый вопрос" :) .

ЗЫ. Это из книги
Керниган Б.В., Пайк Р. UNIX - Универсальная среда программирования

у меня электронная версия
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Упражнения на сообразительность

Сообщение t.t »

(Ratamahatta @ Четверг, 14 Апреля 2005, 14:25) писал(а):"Упражнение 3.6. (Хитрый вопрос.) Как ввести / в локальное имя файла (т. е. символ /, который не является разделителем компонентов в абсолютном имени)? " - смущает "Хитрый вопрос"  .
А, ну так бы сразу и сказали :)
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
William Henry Gates
Сообщения: 493
Статус: ё-моё!!
ОС: jaunty

Re: Упражнения на сообразительность

Сообщение William Henry Gates »

ха-ха! значит, ответ: "никак" :D
You are registered as user #384224 with the Linux Counter. jaunty jackalope & aspire 3650
Спасибо сказали:
Аватара пользователя
Ratamahatta
Сообщения: 41

Re: Упражнения на сообразительность

Сообщение Ratamahatta »

Ох уж и "хитрюги" эти Керниган Б.В. и Пайк Р., не ожидал я от них такого подвоха.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Упражнения на сообразительность

Сообщение alv »

Ребята, в любой книге про Юникс сказано, что в файловой системе Юникс-типа есть один-единственный абсолютно запрещенный к употреблению в именах файлов символ, и символ этот, как легко догадаться - именно он (не подумайте, что C2H5OH).
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Упражнения на сообразительность

Сообщение t.t »

(alv @ Четверг, 14 Апреля 2005, 17:18) писал(а):Ребята, в любой книге про Юникс сказано, что в файловой системе Юникс-типа есть один-единственный абсолютно запрещенный к употреблению в именах файлов символ
Не в любой -- я видел пару таких, в которых не сказано :D
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Valerius
Бывший модератор
Сообщения: 1469
Статус: Отпетый КДЕ'шник

Re: Упражнения на сообразительность

Сообщение Valerius »

А вот и неправда! Можна ввести слеш :)
Свобода есть тонкая полоска между диктатурой и анархией.

---------------------
Mandriva Linux PowerPack 2006 (Cooker-нутая) / KDE-3.5.1
Спасибо сказали:
Аватара пользователя
clx
Сообщения: 3121
Статус: Think Different !
ОС: Mac OS X

Re: Упражнения на сообразительность

Сообщение clx »

2 Valerius:

Угу, только для диры.

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

touch "lol`/`lol"
bash: /: is a directory
iMac 20" Core Duo.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Упражнения на сообразительность

Сообщение alv »

(Valerius @ Четверг, 14 Апреля 2005, 18:49) писал(а):А вот и неправда! Можна ввести слеш :)


Средствами KDE - действительно можно сделать нечто вроде: Создать -> Текстовый (например) файл -> file/new

Но, как и показывает приведенный Вами скриншот, при этом слэш трансофрмируется в нечто нечленораздельное, и команда ls слэша в имени не кажет.
Спасибо сказали:
Аватара пользователя
Valerius
Бывший модератор
Сообщения: 1469
Статус: Отпетый КДЕ'шник

Re: Упражнения на сообразительность

Сообщение Valerius »

Для alv: Да трансформируется, я не спорю, для этого и показал консоль. Но в Конквероре показывает именно так как нужно (тут канешно напрашивается флейм на тему "что можно сделать в КДЕ, чего никак нельзя в консоли", но давайте не будем... ;) ).

зы. Дядя Лёша, не называй меня на Вы, а то мне как-то неуютно :) Бо и я тогда начну выкать! :D
Свобода есть тонкая полоска между диктатурой и анархией.

---------------------
Mandriva Linux PowerPack 2006 (Cooker-нутая) / KDE-3.5.1
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Упражнения на сообразительность

Сообщение alv »

(Valerius @ Четверг, 14 Апреля 2005, 19:29) писал(а):Для alv: Да трансформируется, я не спорю, для этого и показал консоль. Но в Конквероре показывает именно так как нужно (тут канешно напрашивается флейм на тему "что можно сделать в КДЕ, чего никак нельзя в консоли", но давайте не будем... ;) ).


Тут скорее дело не во флейме и консоли, а в том, что в KDE внутреннее представление символов все же - UTF8 (плод глубоких размышлений за ужином со стопарем водки:-) - если ошибаюсь, готов выслушать комптентное суждение), и он (KDE) слэш в прямом смысле не воспринимает, а трактует его как обычный UTF-символ, который в моей KOI'шной (и, видимо, твоей:-), или любой другой 8-битной) консоли трансформируется в последовательность 8-битных символов.

Кстати - не могу проверить по понятным причинам, но вроде в FAT сотоварищи прямой слэш в именах на запрещен, и, скорее всего, его можно считать в юинксах:-)

Тем не менее, команда типа

touch file\new

не пройдет нигде и никак, ни с какими экранами, проверял неоднократно и на всех консольных драйверах - линуксовом, syscons, pcvt, wscons, в любых шеллах.

(Valerius @ Четверг, 14 Апреля 2005, 19:29) писал(а):зы. Дядя Лёша, не называй меня на Вы, а то мне как-то неуютно :) Бо и я тогда начну выкать! :D


Будем считать, что виртуально выпили на брудершафт:-)
Спасибо сказали:
Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin

Re: Упражнения на сообразительность

Сообщение Bolverk »

А у меня вот был такой экспириенс пару недель назад. Поленился я и в одном
скрипте вместо $HOMEDIR написал '~' в пути. После запуска скрипта в текущей
директории появилась поддиректория '~'.
Ее я очень осторожно пытался удалить, так чтобы не удалить ненароком домашнюю
директорию. Всяческие экранирования не помогали - умные bash и mc раскрывали ~
до домашней директории. После долгого раздумывания я запустил "тупой" sh и из
под него наконец-то удалил эту злосчастную директорию.
Спасибо сказали:
Аватара пользователя
TIM
Сообщения: 91
ОС: FreeBSD

Re: Упражнения на сообразительность

Сообщение TIM »

в крайнем случае, от таких файлов хорошо помогают ls -i и clri
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Упражнения на сообразительность

Сообщение alv »

(Bolverk @ Пятница, 15 Апреля 2005, 1:35) писал(а):А у меня вот был такой экспириенс пару недель назад. Поленился я и в одном
скрипте вместо $HOMEDIR написал '~' в пути. После запуска скрипта в текущей
директории появилась поддиректория '~'.
Ее я очень осторожно пытался удалить, так чтобы не удалить ненароком домашнюю
директорию. Всяческие экранирования не помогали - умные bash и mc раскрывали ~
до домашней директории. После долгого раздумывания я запустил "тупой" sh и из
под него наконец-то удалил эту злосчастную директорию.


Заинтересовало. Повторил экскремент. Каталог ~ легко удалился с указанием полного пути -

rm -R tmp/tmp2/~
Спасибо сказали: