Можно использовать readlink
для печати, куда указывает ссылка. Аргумент readlink
без параметров должен быть ссылкой, если передать его в файл, он ничего не напечатает. Параметр -f
для readlink
из пакета coreutils рекурсивно следует по ссылкам и печатает имя файла, даже если аргумент уже является файлом.
Если вы это сделаете ( -n
подавляет новую строку в конце вывода readlink
):
dpkg -S "$(readlink -fn "$(which rename)")"
Вы получите ответ:
perl: /usr/bin/prename
в этом случае ссылка будет удалена из prename
, но это не гарантировано (например, если ссылка указывала на исполняемый файл rename
Как указано в @ 011c, если он установлен, можно использовать realpath
в качестве альтернативы readlink -f
-121--133875-
Они, вероятно, дважды нажимали клавишу TAB для завершения ввода имени файла.
То, что именно вы показываете, немного зависит от оболочки: например, zsh можно настроить так, чтобы показать вам дату и размер файла, и это достаточно умно, чтобы показать вам только каталоги, так как вы не можете cd
в файл в любом случае.
Пример вывода bash:
$ cd (tabtab)
dira/ dirb/ file.txt
Пример вывода zsh после некоторой настройки:
[0 1058 9:52:56] ~/temp/tabtest % cd dir
drwxrwxr-x 2 user group 4096 Oct 3 09:51 dira
drwxrwxr-x 2 user group 4096 Oct 3 09:51 dirb
(zsh завершен до dir
на первой вкладке, так как невозможно выполнить cd в file.txt.)
-121--157772-
Я знал, что хватаюсь за соломинку, но UNIX никогда не дает сбой!
Вот как мне это удалось:
bash$ gdb --pid 8909
...
Loaded symbols for /lib/i386-linux-gnu/i686/cmov/libnss_files.so.2
0xb76e7424 in __kernel_vsyscall ()
Затем по запросу (gdb)
я выполнил команду, вызовите write_history («/tmp/foo »)
, который запишет эту историю в файл /tmp/foo
.
(gdb) call write_history("/tmp/foo")
$1 = 0
Затем отсоединяюсь от процесса.
(gdb) detach
Detaching from program: /bin/bash, process 8909
И выйдите из gdb
.
(gdb) q
И достаточно...
bash$ tail -1 /tmp/foo
while true ; do echo 1 ; echo 2>/dev/null ; sleep 30 ; done
Для упрощения повторного использования в будущем я написал сценарий bash , автоматизирующий процесс.
Если вы хотите использовать этот предварительно созданный образ, вашим единственным решением будет копирование данных с раздела, переформатирование и обратное копирование данных.
Допустим, после запуска [117568]xz -cd ... > /dev/mmcblk1[117567]. > /dev/mmcblk1[117569], Теперь у вас есть раздел [117570]/dev/mmcblk1p1[117571], который содержит вашу файловую систему.
Если следующее руководство не заставляет вас это делать, вам может понадобиться пересканировать таблицу разделов, чтобы забрать новые разделы. Это делается с помощью [117811]partprobe /dev/mmcblk1
На данный момент у вас должна быть полностью перестроенная файловая система ext4 с заданным количеством инодов.[117293].