Сообщение Re[11]: Убунта от 26.12.2019 19:11
Изменено 26.12.2019 19:13 Somescout
Re[11]: Убунта
Здравствуйте, Marty, Вы писали:
M>Здравствуйте, Somescout, Вы писали:
M>>>Говнюки, как есть
S>>Кстати, мне тут вспомнился прикол с именем "-rf" и его раскрытием башем. К вопросу о "нерекомендуемых" именах в ОС.
M>Раскрой плс
M>Здравствуйте, Somescout, Вы писали:
M>>>Говнюки, как есть
S>>Кстати, мне тут вспомнился прикол с именем "-rf" и его раскрытием башем. К вопросу о "нерекомендуемых" именах в ОС.
M>Раскрой плс
# Создаём тестовый каталог и переходим в него
mkdir test
cd test
# Создаём тестовые файлы и каталоги
mkdir dir
touch dir/file1
touch file2
# Создаём файл с "плохим" именем
echo 1 > -rf
# Магия!
rm ./*
# в этом месте из каталога исчезнет всё, кроме файла "-rf" (вместо того чтобы получить обычное сообщение "/bin/rm: cannot remove ‘dir’: Is a directory")
# Это происходит из-за особенности раскрытия масок файлов: маски раскрывает сам баш, поэтому в данном случае получилась такая команда:
rm dir file2 -rf
# Последнее имя для команды "rm" является ключом, требующим рекурсивно удалить все файлы и каталоги с их содержимым
Re[11]: Убунта
Здравствуйте, Marty, Вы писали:
M>Здравствуйте, Somescout, Вы писали:
M>>>Говнюки, как есть
S>>Кстати, мне тут вспомнился прикол с именем "-rf" и его раскрытием башем. К вопросу о "нерекомендуемых" именах в ОС.
M>Раскрой плс
M>Здравствуйте, Somescout, Вы писали:
M>>>Говнюки, как есть
S>>Кстати, мне тут вспомнился прикол с именем "-rf" и его раскрытием башем. К вопросу о "нерекомендуемых" именах в ОС.
M>Раскрой плс
# Создаём тестовый каталог и переходим в него
mkdir test
cd test
# Создаём тестовые файлы и каталоги
mkdir dir
touch dir/file1
touch file2
# Создаём файл с "плохим" именем
echo 1 > -rf
# Магия!
rm ./*
# в этом месте из каталога исчезнет всё, кроме файла "-rf" (вместо того чтобы получить обычное сообщение "/bin/rm: cannot remove ‘dir’: Is a directory")
# Это происходит из-за особенности раскрытия масок файлов: маски раскрывает сам баш, поэтому в данном случае получилась такая команда:
rm dir file2 -rf
# Последнее имя команда "rm" восприняла как ключ, требующий рекурсивно удалить все файлы и каталоги с их содержимым