LWM-Linux/06 - Linux File Operations/Directories and Symlinks (Shortcuts).md

76 lines
3.5 KiB
Markdown
Raw Normal View History

# Directories and Symlinks
## Directories:
### 1. Definition:
A directory (also called a folder) is a container in a file system that can hold files and other directories. It organizes files and provides a hierarchical structure.
### 2. Types of directories:
- Root directory: The top-level directory in the file system hierarchy, typically represented by "/" on Unix-like systems.
- Home directory: The default directory for a user, usually containing personal files and configurations.
- Parent directory: The directory one level above the current directory, represented by "..".
- Current directory: The directory you're currently in, represented by ".".
- Subdirectory: Any directory contained within another directory.
### 3. Directory operations:
- Create: mkdir (make directory)
- Delete: rmdir (remove directory) or rm -r (remove recursively)
- Change: cd (change directory)
- List contents: ls (list) or dir (on Windows)
- View path: pwd (print working directory)
### 4. Directory permissions:
On Unix-like systems, directories have read (r), write (w), and execute (x) permissions. The execute permission allows users to enter the directory.
### 5. Hidden directories:
In Unix-like systems, directories starting with a dot (.) are hidden by default.
## Symlinks (Symbolic Links):
### 1. Definition:
A symlink is a special type of file that points to another file or directory. It's similar to a shortcut in Windows or an alias in macOS.
### 2. Types of symlinks:
- Soft links (symbolic links): Point to a file or directory by name. They can span file systems and can link to non-existent targets.
- Hard links: Point directly to the inode of a file. They can't span file systems or link to directories.
### 3. Creating symlinks:
Use the ln command with the -s option:
```
ln -s target_path link_path
```
### 4. Advantages of symlinks:
- Save space by avoiding duplicate files
- Create shortcuts to frequently accessed files or directories
- Maintain multiple versions of files or configurations
- Facilitate easier software updates and management
### 5. Symlink behavior:
- When you access a symlink, the system automatically redirects to the target.
- Deleting a symlink doesn't affect the target file or directory.
- If the target is deleted, the symlink becomes a "dangling" or "broken" link.
### 6. Identifying symlinks:
- Use ls -l to see detailed file information. Symlinks are indicated by an "l" at the start of the permissions string.
- The file command can also identify symlinks.
### 7. Following symlinks:
- Some commands (like cp) don't follow symlinks by default. Use the -L or --follow options to change this behavior.
### 8. Symlinks in different operating systems:
- Unix-like systems (Linux, macOS): Native support for symlinks.
- Windows: Limited support in older versions, full support since Windows Vista.
### 9. Security considerations:
- Symlinks can potentially be used in symlink attacks, where an attacker creates a link to a sensitive file.
- Many systems implement symlink protections to mitigate these risks.
### 10. Use cases:
- Maintaining multiple versions of configuration files
- Creating shortcuts in the file system
- Managing shared libraries
- Facilitating easier software updates
Understanding directories and symlinks is crucial for effective file system management, particularly in Unix-like environments. They provide powerful tools for organizing and accessing files efficiently.