Информация об изменениях

Сообщение Re[11]: Убунта от 26.12.2019 19:11

Изменено 26.12.2019 19:12 Somescout

Re[11]: Убунта
Здравствуйте, Marty, Вы писали:

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>Раскрой плс


# Создаём тестовый каталог и переходим в него
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" является ключом, требующим рекурсивно удалить все файлы и каталоги с их содержимым