Dijiste que es C++, por lo que debería ser posible volcarlo de la memoria.
Primero desea encontrar el proceso en la memoria:
$ cat /proc/[pid]/maps
00400000-00404000 r-xp 00000000 ca:01 16823 /home/ec2-user/a.out (deleted)
Entonces puedes volcarlo
$ gdb --pid [pid]
dump memory /home/ec2-user/output 0x00400000 0x00404000
Entonces debería poder ejecutarlo marcándolo como ejecutable(chmod +x
)
$ file output
output: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, missing section headers
Вы не можете сделать это с помощью сценария оболочки, потому что сценарии выполняются в новых оболочках, и при выходе из сценария оболочка выходит из оболочки и «забывает» изменение каталога. См. Скрипт для изменения текущего каталога (cd, pwd), например (возможно, где-то на сайте есть более подробные ответы).
Вместо этого вам нужно использовать функцию:
cd1() {
cd "$@"
ls -al
}
Другой вариант (в вашем .bashrc):
PROMPT_COMMAND='if [[ "$PWD" != "$_promptPWD" ]]; then ls -al; _promptPWD=$PWD; fi'
_promptPWD=$PWD
Это подключается к функции PROMPT_COMMAND bash, чтобы она выполняла ls
за вас, если вы изменили директории. Минусы:
_promptPWD
)Плюс в том, что вы можете продолжать набирать cd
как обычно, и не нужно набирать что-то другое, чтобы получить поведение ls
.