Я выполнил эту команду вчера, думал на тестовой машине, но это был Файловый Сервер, подключенный через SSH.
sudo rm -rf /tmp/* !(lost+found)
Мой эмулятор терминала - Konsole. Моя система - Debian 7.
Вопрос:
Эта команда удаляла другие файлы, кроме файлов в / tmp?
files
filesystems
rm
tmp
что-то что-то
источник
источник
dsgsadfsf
нажмите и нажмите Enter. Смотрите результат. Если это такbash: dsgsadfsf: command not found
, то ваша оболочка естьbash
.Ответы:
Правильный синтаксис в bash следующий:
Как пишет @goldilocks в комментариях, исходная команда расширяет запрос (она удаляет все файлы в папке, затем продолжается и удаляет все файлы в текущей рабочей папке, в вашем случае - в папке).
/tmp
home
Вы можете попробовать проверить, можете ли вы восстановить некоторые из ваших данных. Существует вопрос о Linux восстановления данных здесь .
источник
rm -rf / tmp
^^sudo
, поэтому обычная папка, доступная только для записи root, не обязательно помогла бы.!(lost+found)
В вашейrm
команде, вероятно, роковая ошибка:Я не знаю точно, что
bash
делает с этим, но эта команда ниже печатает все в моем,/tmp/
а также все в моем текущем каталоге (который в настоящее время~
):источник
!(folder)
часть команды, которую я однажды выполнил, которая удалила все, кромеfolder
.!lost+found: event not found
как!
используется для извлечения команд из истории.cd /; echo !(lost+found)
> _ <!(foo)
bash работает как «все, кроме foo», только если установленаextglob
опция. Более того, OP не уточнил, какую оболочку он использует, поэтому очень сложно догадаться, что именноrm !(lost+found)
команда сделала в его случае.bash
оболочку по умолчанию. Скорее всего, он не изменил это. Кроме того, в Debian 7extglob
опция установленаtrue
по умолчанию (я только что проверил это).