Как я могу прочитать файл sh во время его работы, но удалить?

man ./named.8 будет работать. man будет принимать имя файла в качестве аргумента, но если аргумент «похож» на имя man-страницы, он предположит, что он есть, а не проверяет файл с таким именем. Добавив ./ для ссылки на файл в текущем каталоге, вы даете понять, что это имя файла, и поэтому man будет рассматривать его как таковой. Вы также можете использовать полный абсолютный путь.

20
задан 12 May 2018 в 10:29

3 ответа

tail -c +0 -f /proc/{pid}/fd/{fd} > /tmp/file

, где {pid} - идентификатор вашего процесса, а /tmp/file будет содержать его содержимое. Используйте другое место и имя, если вы хотите его сохранить.

{pid} - это идентификатор процесса. {fd} - дескриптор файла. lsof должен показать fd. lsof, скорее всего, также покажет «удален» на линии, чтобы вы могли grep тоже. lsof -nP +L1 отобразит все файлы с менее чем 1 ссылкой, удаленный файл будет равен 0. Добавьте | grep {pid} для поиска только вашего PID. от десерта: lsof -p 22664 | sed -E '$!d;s/.*\s([0-9]+)[a-z]\s.*/\1/', чтобы просто получить fd. из комментариев: вы можете использовать less, cat или cp тоже. Я вырос на tail :)
24
ответ дан 22 May 2018 в 10:46
  • 1
    «Я вырос на хвосте!» Ценное понимание для любого, кто должен что-либо сделать с помощью * x. – Sri 16 May 2018 в 06:57
tail -c +0 -f /proc/{pid}/fd/{fd} > /tmp/file

, где {pid} - идентификатор вашего процесса, а /tmp/file будет содержать его содержимое. Используйте другое место и имя, если вы хотите его сохранить.

{pid} - это идентификатор процесса. {fd} - дескриптор файла. lsof должен показать fd. lsof, скорее всего, также покажет «удален» на линии, чтобы вы могли grep тоже. lsof -nP +L1 отобразит все файлы с менее чем 1 ссылкой, удаленный файл будет равен 0. Добавьте | grep {pid} для поиска только вашего PID. от десерта: lsof -p 22664 | sed -E '$!d;s/.*\s([0-9]+)[a-z]\s.*/\1/', чтобы просто получить fd. из комментариев: вы можете использовать less, cat или cp тоже. Я вырос на tail :)
24
ответ дан 17 July 2018 в 14:31
tail -c +0 -f /proc/{pid}/fd/{fd} > /tmp/file

, где {pid} - идентификатор вашего процесса, а /tmp/file будет содержать его содержимое. Используйте другое место и имя, если вы хотите его сохранить.

{pid} - это идентификатор процесса. {fd} - дескриптор файла. lsof должен показать fd. lsof, скорее всего, также покажет «удален» на линии, чтобы вы могли grep тоже. lsof -nP +L1 отобразит все файлы с менее чем 1 ссылкой, удаленный файл будет равен 0. Добавьте | grep {pid} для поиска только вашего PID. от десерта: lsof -p 22664 | sed -E '$!d;s/.*\s([0-9]+)[a-z]\s.*/\1/', чтобы просто получить fd. из комментариев: вы можете использовать less, cat или cp тоже. Я вырос на tail :)
24
ответ дан 20 July 2018 в 14:36

Другие вопросы по тегам:

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