Я сделал ошибку вчера вечером, которая удалила 1800 ГБ моего Файлового сервера неумышленно

- g опция включает использование дополнительной отладочной информации, которую может использовать GDB. Вот пример кода C:

int main() {
    int x = 1/0;    
}

давайте скомпилируем его без-g опции и посмотрим вывод gdb:

$ gcc test.c -o test
test.c: In function ‘main’:
test.c:2:11: warning: division by zero [-Wdiv-by-zero]
$ gdb -q ./test
Reading symbols from /home/mariusz/Dokumenty/Projekty/Testy/test...(no debugging symbols found)...done.
(gdb) run
Starting program: /home/mariusz/Dokumenty/Projekty/Testy/test 

Program received signal SIGFPE, Arithmetic exception.
0x080483cb in main ()

И теперь с-g опцией:

$ gcc -g test.c -o test
test.c: In function ‘main’:
test.c:2:11: warning: division by zero [-Wdiv-by-zero]
$ gdb -q ./test
Reading symbols from /home/mariusz/Dokumenty/Projekty/Testy/test...done.
(gdb) run
Starting program: /home/mariusz/Dokumenty/Projekty/Testy/test 

Program received signal SIGFPE, Arithmetic exception.
0x080483cb in main () at test.c:2
2       int x = 1/0;    

Как Вы видите, теперь существует информация о строке с ошибкой.

27
13.11.2014, 18:01
2 ответа

Правильный синтаксис в Bash является следующим:

rm /tmp/!(lost+found)

AS @Goldilocks писал в комментариях, исходная команда делает расширение в запросе (его Удаляет все файлы в папке / TMP , затем продолжается и удаляет все файлы в текущей рабочей папке в вашем случае Home папку).

Вы можете попробовать проверить, можете ли вы восстановить некоторые из ваших данных. Восстановление о восстановлении данных Linux здесь .

43
27.01.2020, 19:39

! (lost+found) в вашем комната команда был, вероятно, фатальной ошибкой:

1978  rm -rf /tmp/* !(lost+found)
1979  sudo rm -rf /tmp/* !(lost+found)

я не знаю точно, что удар делает с этим, но эта команда ниже печатает все в моем /tmp / и также все мой текущий каталог (который в настоящее время является ~ ):

echo /tmp/* !(lost+found)
26
27.01.2020, 19:39

Теги

Похожие вопросы