In computing, a file shortcut is a handle in a user interface that allows the user to find a file or resource located in a different directory or folder from the place where the shortcut is located. Similarly, an Internet shortcut allows the user to open a page, file or resource located at a remote Internet location or Web site.
Shortcuts are typically implemented as a small file containing a target URI or GUID to an object, or the name of a target program file that the shortcut represents. The shortcut might additionally specify parameters to be passed to the target program when it is run. Each shortcut can have its own icon. Shortcuts are very commonly placed on a desktop, in an application launcher panel such as the Microsoft Windows Start menu, or in the main menu of a desktop environment. The functional equivalent in the Macintosh operating system is called an alias, and a symbolic link (or symlink) in UNIX-like systems.
.lnk, .url, .cda
|Internet media type|
|Developed by||Microsoft Corporation|
|Type of format||file shortcut|
File shortcuts (also known as shell links) were introduced in Windows 95. Microsoft Windows uses .lnk as the filename extension for shortcuts to local files, and .URL for shortcuts to remote files, like web pages. Commonly referred to as "shortcuts" or "link files", both are displayed with a curled arrow overlay icon by default, and no filename extension. (The extension remains hidden in Windows Explorer even when "Hide extensions for known file types" is unchecked in File Type options, because it is controlled by the NeverShowExt option in HKEY_CLASSES_ROOT\lnkfile in the Registry. The IsShortcut option causes the arrow to be displayed.) Shortcut files can be used to launch programs in minimized or maximized window states if the program supports it.
Microsoft Windows .lnk files operate as Windows Explorer extensions, rather than file system extensions. As a shell extension, .lnk files cannot be used in place of the file except in Windows Explorer, and have other uses in Windows Explorer in addition to use as a shortcut to a local file (or GUID). These files also begin with "L".
Although shortcuts, when created, point to specific files or folders, they may break if the target is moved to another location. When a shortcut file that points to a nonexistent target is opened, Explorer will attempt to repair the shortcut. Windows 9x-based versions of Windows use a simple search algorithm to fix broken shortcuts. On Windows NT-based operating systems and the NTFS file system, the target object's unique identifier is stored in the shortcut file and Windows can use the Distributed Link Tracking service for tracking the targets of shortcuts, so that the shortcut may be silently updated if the target moves to another hard drive. Windows Installer, introduced in Windows 2000, added another special type of shortcuts called "Advertised Shortcuts."
File shortcuts in Windows can store a working directory path besides the target path. Environment variables can be used. A hotkey can be defined in the shortcut's properties for shortcuts that are located in the Start Menu folders, pinned to the Taskbar or the Desktop. In Windows 2000 onwards, file shortcuts can store comments which are displayed as a tooltip when the mouse hovers over the shortcut.
Generally, the effect of double-clicking a shortcut is intended to be the same as double-clicking the application or document to which it refers, but Windows shortcuts contain separate properties for the target file and the "Start In" directory. If the latter parameter is not entered, attempting to use the shortcut for some programs may generate "missing DLL" errors not present when the application is accessed directly.
File system links can also be created on Windows systems (Vista and up). They serve a similar function, although they are a feature of the file system. Windows shortcuts are files and work independently of the file system, through Explorer.
Beginning with Windows 7, some shortcuts also store Application User Model IDs (AppUserModelIDs). Instead of the target command line, AppUserModelIDs may directly be used to launch applications. Shortcuts with AppUserModelIDs are used by some desktop programs and all WinRT Modern/Universal Windows Platform apps for launching.
Although Windows does not provide convenient tools to create it, Explorer supports a "folder link" or "shell link folder": a folder with the system attribute set, containing a hidden "desktop.ini" (folder customization) file which tells Explorer to look in that same folder for a "target.lnk" shortcut file pointing to another folder. When viewed in Explorer, the shell link folder then appears to have the contents of the target folder in it—that is, the customized folder becomes the effective shortcut. This technique is used by Microsoft Windows for items like WebDAV folders. The advent of file system links in Windows Vista and up has made shell link folders less useful.
|Internet media type|
|Type of format||file shortcut|
|Extended from||INI file|
Some desktop environments for Unix-like operating systems, such as GNOME or KDE provide freedesktop.org .desktop files. These can be used to point to local or remote files, folders, and applications. Symbolic links can also be created on Unix systems, which serve a similar function, although they are a feature of the file system.
List of X window managers that support .desktop shortcuts
Macintosh does not have extensions for shortcuts. A file type called "alias" was introduced in Macintosh System 7; it tracks information like inode number to handle moves. Aliases in System 7 through Mac OS 9 were distinguished from other files by using names in italics. In Mac OS 8 and later, another distinguishing mark was added: an "alias arrow" – a black arrow on a small white square – similar to that used for shortcuts in Microsoft Windows. In Mac OS X, the names of aliases are no longer italicized, but the arrow badge remains. Additionally, an alias retains its dynamic reference to an object and does not have to be specified even when calling files on remote servers.
To execute an application or render a file in early graphical user interfaces, the user had to click on the representation of the actual file or executable in the location where the application or file was. The concept of disassociating the executable from the icon representing an instruction to perform a task associated with that file or executable so that they may be grouped by function or task rather than physical organisation in the file structure was first described in the research paper "A Task Oriented Front End For The Windows Graphical User Interface", published in 1991 by Kingston University and presented to both Microsoft and Xerox EuroPARC that same year under an academia/business technology sharing agreement. A simplified form of this research was incorporated into System 7 in 1991, and four years later into Windows 95.
- Chen, Raymond (October 2009). "Windows Confidential: Tracking Shortcuts". TechNet Magazine. Microsoft. Archived from the original on 12 October 2009. Retrieved 14 April 2019.
- "Distributed Link Tracking on Windows-based domain controllers". Microsoft Corporation. 28 February 2007. Archived from the original on 9 April 2008. Retrieved 14 April 2019.
- Cheng, Chieh (19 April 2008). "Dawn of War - Dark Crusade: Error Loading Module". GearHack. Retrieved 14 April 2019.
- Chen, Raymond (September 2006). "Windows Confidential: Why are Shortcuts Files?". TechNet Magazine. Microsoft. Archived from the original on 4 July 2009. Retrieved 14 April 2019.
- "Application User Model IDs (AppUserModelIDs)". MSDN. Microsoft. Archived from the original on 13 January 2015. Retrieved 14 April 2019.
- Shultz, Greg (18 October 2004). "Manually creating junction points in Windows XP". Tech Republic. CBS Interactive. Retrieved 14 April 2019.
- "Desktop Entry Specification". freedesktop.org. freedesktop.org. Retrieved 2015-07-28.
- "MS-SHLLINK: Shell Link (.LNK) Binary File Format" from Microsoft
- IShellLink interface for accessing .lnk files in the Windows API
- "Shellify" Shellify is a 100% managed .NET implementation of the Microsoft Shell Link (.LNK) Binary File Format for accessing .lnk files without the Windows API
- Win32::Shortcut - Perl Module to deal with Windows Shortcuts Perl library