Symbolic Link
A file that points at another path, resolved transparently by most operations.
A symbolic link is a file whose content is a path; opening it transparently opens the target. It differs from a hard link, which is a second directory entry for the same underlying file — a symlink can point at something that does not exist, and can cross filesystems.
Symlinks are the standard mechanism for making one canonical copy of a file appear where a tool insists on finding it, which is what makes a Dotfiles repository practical for tools that ignore configuration-directory conventions.
They break in specific ways worth knowing. A relative symlink resolves against its own directory, so moving the link changes what it points at. A broken link — target moved or deleted — often surfaces as a confusing "file not found" for a file that visibly exists. And tools differ on whether they follow links: some copy the link, some copy the target, some refuse.
Version control treats a symlink as a file containing a path, which means committing one commits the path, not the content. That is usually what you want in a configuration repository and is a trap if the intent was to track the file.
Careless linking of a home directory's important files is a genuinely destructive operation, which is the argument for a script that is reviewable and idempotent rather than a sequence of ad-hoc commands.
See also11
XDG Base Directory Specification
A convention placing configuration, data, cache, and state in defined directories rather than the home directory.
Systems & Tooling11 connections
Idempotence
The property that performing an operation twice has the same effect as performing it once.
Systems & Tooling34 connections
Environment Variable
A named value in a process's environment, inherited by its children — the standard configuration channel.
Systems & Tooling23 connections
Shell
The interactive command interpreter, and a programming language with unusually sharp edges.
Systems & Tooling24 connections
Terminal User Interface
An interface rendered as text in a terminal, and the design conventions that make command-line tools humane.
Graphics & Rendering16 connections
Time Zone
Civil time is a political layer over solar time, and its rules change often enough to be data.
Systems & Tooling21 connections
Containerization
Packaging an application with its dependencies into an isolated, reproducible runtime unit.
Systems & Tooling33 connections
Secret Management
Storing, distributing, and rotating credentials without embedding them in code or history.
Systems & Tooling33 connections
Silent Failure
A failure that produces no signal, so the absence of an error reads as success.
Method73 connections
Archive File
Files that bundle many files and their metadata into one, from tape-era tar streams to zip's index at the end, whose design choices still decide what can be listed, extracted, or exploited.
Systems & Tooling6 connections
Time-of-Check to Time-of-Use
A race where a program checks a condition and then acts on it, but the world changes in between, the root of classic file-permission exploits and of double-spending bugs in web applications.
Systems & Tooling12 connections
Linked from6
- Archive FileSystems & Tooling
Files that bundle many files and their metadata into one, from tape-era tar streams to zip's index at the end, whose design choices still decide what can be listed, extracted, or exploited.
- Atomic File WriteSystems & Tooling
Replacing a file so that readers and crashes see either the complete old version or the complete new one, never a half-written mix, by writing a temporary file and renaming it over the original.
- DotfilesSystems & Tooling
A tracked repository of personal configuration, making a machine setup reproducible.
- InodeSystems & Tooling
The record a Unix filesystem keeps about a file's metadata and data location — everything except its name.
- Time-of-Check to Time-of-UseSystems & Tooling
A race where a program checks a condition and then acts on it, but the world changes in between, the root of classic file-permission exploits and of double-spending bugs in web applications.
- XDG Base Directory SpecificationSystems & Tooling
A convention placing configuration, data, cache, and state in defined directories rather than the home directory.