Почему «ldd / usr / bin / firefox» не перечисляет файлы библиотеки?

Вы можете использовать awk-программу следующим образом:

awk '{ print strftime("%c",$1)"|" $2"|"$3"|"$4 }' file

ядром является использование функции strftime для преобразования эпохи в формат даты

Вот результат:

#awk '{ print strftime("%c",$1)"|" $2"|"$3"|"$4 }' file
Sun Jan 22 10:12:26 2006|180900|61.153.158.197|1409
Sun Jan 22 10:12:38 2006|181622|61.153.158.197|1409
Sun Jan 22 10:22:38 2006|180026|221.226.124.114|1374
Sun Jan 22 10:23:22 2006|179485|121.13.128.132|1409

P.S. Или вы можете использовать неявный разделитель вывода:

awk  'BEGIN { OFS="|"} {$1= strftime("%c",$1) }1' file
0
21.05.2017, 10:38
2 ответа

Исполняемый файл firefox представляет собой сценарий оболочки в вашей системе.

В некоторых приложениях используется сценарий-оболочка, который настраивает среду выполнения для приложения, возможно, для обеспечения лучшей интеграции с текущим вариантом Unix или для предоставления альтернативных способов запуска приложения (новые наборы параметров командной строки и т. ), которые само приложение не предоставляет. Иногда сценарий-оболочка используется для выбора правильного фактического двоичного файла для запуска в зависимости от того, как этот сценарий был вызван.

Например, компилятор C MPI («Интерфейс передачи сообщений») представляет собой не что иное, как скрипт-оболочку для cc (или любого другого компилятора, на использование которого он настроен), который гарантирует, что заголовки MPI находятся в путь поиска и что библиотека MPI связана при компиляции.

Взгляните на этот скрипт, чтобы увидеть, какие двоичные файлы он вызывает при каких обстоятельствах.

5
28.01.2020, 02:13
$ file $(which firefox)
/usr/bin/firefox: Bourne-Again shell script, ASCII text executable

$ tail $(which firefox)
done

# Run the browser
debugging=0
if [ $debugging = 1 ]
then
  echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
fi

exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
4
28.01.2020, 02:13

Теги

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