- 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;
Как Вы видите, теперь существует информация о строке с ошибкой.
Правильный синтаксис в Bash является следующим:
rm /tmp/!(lost+found)
AS @Goldilocks писал в комментариях, исходная команда делает расширение в запросе (его Удаляет все файлы в папке / TMP
, затем продолжается и удаляет все файлы в текущей рабочей папке в вашем случае Home
папку).
Вы можете попробовать проверить, можете ли вы восстановить некоторые из ваших данных. Восстановление о восстановлении данных Linux здесь .
! (lost+found)
в вашем комната
команда был, вероятно, фатальной ошибкой:
1978 rm -rf /tmp/* !(lost+found)
1979 sudo rm -rf /tmp/* !(lost+found)
я не знаю точно, что удар
делает с этим, но эта команда ниже печатает все в моем /tmp /
и также все мой текущий каталог (который в настоящее время является ~
):
echo /tmp/* !(lost+found)