
Для запуска ярлыка Windows lnk в Linux можно использовать wine start qqq.lnk
.
Но могу ли я просмотреть информацию (командную строку, текущий каталог) о нем? strings
Недостаточно.
решение1
Похоже, программ для этого не так уж много... Я нашел два скрипта Perl, которые вроде как работают.
Используйте их следующим образом:<whicheverscript> Name.lnk
решение2
Вы можете использовать lnkinfo
инструмент изliblnk( liblnk-utils
пакет в Debian):
lnkinfo <file.lnk>
Пример использования в скриптах:
LOCAL_PATH=$(lnkinfo "$1" | grep 'Local path' | cut -d':' -f2-)
ARGS=$(lnkinfo "$1" | grep 'Command line arguments' | cut -d':' -f2-)
Пример вывода:
$ lnkinfo 'Program Files - Shortcut.lnk'
lnkinfo 20171101
Windows Shortcut information:
Contains a link target identifier
Contains a relative path string
Link information:
Creation time : Jul 14, 2009 03:20:08.555426400 UTC
Modification time : Apr 23, 2019 21:36:46.017274100 UTC
Access time : Apr 23, 2019 21:36:46.017274100 UTC
File size : 12288 bytes
Icon index : 0
Show Window value : 0x00003000
Hot Key value : 12288
File attribute flags : 0x00000011
Is read-only (FILE_ATTRIBUTE_READ_ONLY)
Is directory (FILE_ATTRIBUTE_DIRECTORY)
Drive type : Fixed (3)
Drive serial number : 0x0e1909c6
Volume label : Local Disk
Local path : C:\Program Files
Relative path : ..\..\..\Program Files
Link target identifier:
Shell item list
Number of items : 3
Shell item: 1
Item type : Root folder
Class type indicator : 0x1f (Root folder)
Shell folder identifier : 20d04fe0-3aea-1069-a2d8-08002b30309d
Shell folder name : My Computer
Shell item: 2
Item type : Volume
Class type indicator : 0x2f (Volume)
Volume name : C:\
Shell item: 3
Item type : File entry
Class type indicator : 0x31 (File entry: Directory)
Name : PROGRA~1
Modification time : Apr 23, 2019 21:36:48
File attribute flags : 0x00000011
Is read-only (FILE_ATTRIBUTE_READ_ONLY)
Is directory (FILE_ATTRIBUTE_DIRECTORY)
Extension block: 1
Signature : 0xbeef0004 (File entry extension)
Long name : Program Files
Localized name : @shell32.dll,-21781
Creation time : Jul 14, 2009 03:20:10
Access time : Apr 23, 2019 21:36:48
NTFS file reference : MFT entry: 878, sequence: 1
Distributed link tracking data:
Machine identifier : <snip>
Droid volume identifier : b2638d5e-f5b8-480c-bda0-fdb25ab91131
Droid file identifier : 968b84a2-a646-11e9-a124-0021cc6948e3
Birth droid volume identifier : b2638d5e-f5b8-480c-bda0-fdb25ab91131
Birth droid file identifier : 968b84a2-a646-11e9-a124-0021cc6948e3
решение3
В вопросе не говорится, что вы используете cygwin, но если это так, я бы посоветовал прочитать shortcut, который идет в комплекте с пакетом Cygutils.
Примечание: я нашел несколько сочетаний клавиш, которые не отображаются, поэтому я также предлагаю метод «грубой силы».
струны -эл
или даже
hexdump -c
READSHORTCUT(1) Cygutils
READSHORTCUT(1)ИМЯ readshortcut - чтение данных из файла ярлыка Windows (.lnk)
СИНТАКСИС readshortcut [ПАРАМЕТР]* ЯРЛЫК
ОПИСАНИЕ readshortcut — это инструмент командной строки для чтения файлов ярлыков Windows (также известных как ссылки OLE). Наиболее практичное применение — разрешение цели, на которую указывает ярлык. Его можно легко запустить из скрипта или пакетного файла для неинтерактивного использования.