1.создайте каталог, создайте там файликов и не пустых подкаталогов.
2.попробуйте сделать 'rm *' в этом каталоге. он удалит файлы, а каталоги оставит и при этом ругнётся.
3.создайте в этом же каталоге файлик с именем -rf и снова запустите 'rm *'
4.наслаждайтесь.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, thesz, Вы писали:
T>1.создайте каталог, создайте там файликов и не пустых подкаталогов. T>2.попробуйте сделать 'rm *' в этом каталоге. он удалит файлы, а каталоги оставит и при этом ругнётся. T>3.создайте в этом же каталоге файлик с именем -rf и снова запустите 'rm *' T>4.наслаждайтесь.
Ну, создать его тоже не так просто:
MigMit:testdir MigMit$ touch -rf
touch: f: No such file or directory
Но если постараться — ну что ж, на каждый болт на восемнадцать найдётся своя хитрая жопа с лабиринтом:
MigMit:testdir MigMit$ find .
.
./-rf
./testdir1
./testdir1/testfile11
./testdir1/testfile12
./testdir2
./testdir2/testfile21
./testdir2/testfile22
MigMit:testdir MigMit$ rm -- *
rm: testdir1: is a directory
rm: testdir2: is a directory
MigMit:testdir MigMit$ ls
testdir1/ testdir2/
Здравствуйте, thesz, Вы писали:
T>А также встретил в одной из презентаций замечательный юниксовый баг.
T>1.создайте каталог, создайте там файликов и не пустых подкаталогов. T>2.попробуйте сделать 'rm *' в этом каталоге. он удалит файлы, а каталоги оставит и при этом ругнётся. T>3.создайте в этом же каталоге файлик с именем -rf и снова запустите 'rm *' T>4.наслаждайтесь.
Имхо, это не баг. Сначала литерально расширяется * до списка имён содержащихся в каталоге, а потом только вызывается rm. Т.е. это эквивалентно 'echo * | xargs rm'
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Здравствуйте, thesz, Вы писали: T>3.создайте в этом же каталоге файлик с именем -rf и снова запустите 'rm *'
Что какбы доказывает крайнюю важность вопросов гигиены в метапрограммировании.
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, thesz, Вы писали: T>>3.создайте в этом же каталоге файлик с именем -rf и снова запустите 'rm *' MC>Что какбы доказывает крайнюю важность вопросов гигиены в метапрограммировании.
Кстати!
Действительно.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)