Claude
Skills
Sign in
Back

file-operations

Included with Lifetime
$97 forever

Linux file and directory operations

Generallinuxfiledirectoryfindpermissions

What this skill does


# File and Directory Operations

## Overview
Linux file system operation skills, including file search, batch operations, permission management, etc.

## File Search

### find Command
```bash
# Search by name
find /path -name "*.log"
find /path -iname "*.LOG"           # Case insensitive

# Search by type
find /path -type f                  # Files
find /path -type d                  # Directories
find /path -type l                  # Symbolic links

# Search by time
find /path -mtime -7                # Modified within 7 days
find /path -mtime +30               # Modified more than 30 days ago
find /path -mmin -60                # Modified within 60 minutes

# Search by size
find /path -size +100M              # Larger than 100MB
find /path -size -1k                # Smaller than 1KB

# Combined conditions
find /path -name "*.log" -mtime +7 -size +10M
```

### locate Command
```bash
# Quick search (requires database update)
locate filename
updatedb                            # Update database

# Case insensitive
locate -i filename
```

## File Operations

### Basic Operations
```bash
# Copy
cp file1 file2
cp -r dir1 dir2                     # Recursive copy directory
cp -p file1 file2                   # Preserve attributes

# Move/Rename
mv file1 file2
mv file1 /path/to/dest/

# Delete
rm file
rm -rf dir                          # Recursive force delete
rm -i file                          # Interactive confirmation

# Create
touch file                          # Create empty file
mkdir -p dir1/dir2/dir3             # Recursive create directories
```

### Batch Operations
```bash
# Batch rename
rename 's/old/new/' *.txt
for f in *.txt; do mv "$f" "${f%.txt}.md"; done

# Batch delete
find /path -name "*.tmp" -delete
find /path -name "*.log" -mtime +30 -exec rm {} \;

# Batch copy
find /src -name "*.conf" -exec cp {} /dest/ \;
```

## File Content

### View Files
```bash
cat file                            # Full content
head -n 20 file                     # First 20 lines
tail -n 20 file                     # Last 20 lines
tail -f file                        # Real-time follow
less file                           # Paginated view

# Statistics
wc -l file                          # Line count
wc -w file                          # Word count
wc -c file                          # Byte count
```

### File Comparison
```bash
diff file1 file2
diff -u file1 file2                 # Unified format
diff -r dir1 dir2                   # Compare directories

# Side-by-side comparison
sdiff file1 file2
vimdiff file1 file2
```

## Permission Management

### View Permissions
```bash
ls -la
stat file
```

### Modify Permissions
```bash
# Numeric mode
chmod 755 file                      # rwxr-xr-x
chmod 644 file                      # rw-r--r--

# Symbolic mode
chmod u+x file                      # Add execute for user
chmod g-w file                      # Remove write for group
chmod o=r file                      # Set read-only for others
chmod a+r file                      # Add read for all

# Recursive modify
chmod -R 755 dir
```

### Modify Owner
```bash
chown user file
chown user:group file
chown -R user:group dir             # Recursive modify
```

## Common Scenarios

### Scenario 1: Clean Up Large Files
```bash
# Find files larger than 100MB
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null

# Find and sort by size
du -ah /path | sort -rh | head -20
```

### Scenario 2: Find Recently Modified Files
```bash
# Files modified within 24 hours
find /path -type f -mtime -1

# Sort by modification time
ls -lt /path | head -20
```

### Scenario 3: Batch Replace File Content
```bash
# Single file replacement
sed -i 's/old/new/g' file

# Batch replacement
find /path -name "*.conf" -exec sed -i 's/old/new/g' {} \;
```

## Troubleshooting

| Problem | Solution |
|---------|----------|
| Permission denied | Use `sudo` or check file permissions |
| Disk space full | `df -h`, `du -sh *` to find large files |
| Special characters in filename | Use quotes or escape `rm "file name"` |
| Slow deletion of many files | Use `rsync --delete` or `find -delete` |
Files: 1
Size: 4.2 KB
Complexity: 11/100
Category: General

Related in General