76 lines
3.5 KiB
Markdown
76 lines
3.5 KiB
Markdown
|
|
# 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.
|