File Utilities
A toolkit for common file operations using Python standard library only.
When to Use This Skill
Activate this skill when the user needs to:
- •Find files matching certain criteria (pattern, size, date)
- •Count lines in files (with optional pattern matching)
- •Get detailed file information (size, type, encoding)
- •Compare two files (text or binary)
Available Scripts
Always run scripts with --help first to see all available options.
| Script | Purpose |
|---|---|
find_files.py | Find files by pattern, size, or date |
count_lines.py | Count lines in files |
file_stats.py | Get detailed file information |
compare_files.py | Compare two files |
Decision Tree
code
Task → What do you need?
│
├─ Find files matching criteria?
│ └─ Use: find_files.py <path> --pattern "*.py"
│
├─ Count lines (or matches)?
│ └─ Use: count_lines.py <file>
│
├─ Get file information?
│ └─ Use: file_stats.py <file>
│
└─ Compare two files?
└─ Use: compare_files.py <file1> <file2>
Quick Examples
Find files:
bash
python scripts/find_files.py . --pattern "*.py" python scripts/find_files.py /var/log --pattern "*.log" --size +1M python scripts/find_files.py . --modified-within 7d
Count lines:
bash
python scripts/count_lines.py myfile.txt python scripts/count_lines.py src/ --pattern "*.py" --total python scripts/count_lines.py code.py --match "TODO"
File statistics:
bash
python scripts/file_stats.py document.txt python scripts/file_stats.py image.png --checksum
Compare files:
bash
python scripts/compare_files.py old.txt new.txt python scripts/compare_files.py file1.bin file2.bin --binary python scripts/compare_files.py config1.yaml config2.yaml --unified
Size Suffixes
For find_files.py --size:
- •
Bor no suffix: bytes - •
K: kilobytes (1024 bytes) - •
M: megabytes - •
G: gigabytes
Prefixes:
- •
+1M: larger than 1 MB - •
-100K: smaller than 100 KB - •
1M: exactly 1 MB (rarely used)
Time Formats
For find_files.py time filters:
- •
7d: 7 days - •
24h: 24 hours - •
30m: 30 minutes - •
2w: 2 weeks
Common Use Cases
- •Find large log files:
find_files.py /var/log --pattern "*.log" --size +100M - •Count code lines:
count_lines.py src/ --pattern "*.py" --total - •Find recently modified:
find_files.py . --modified-within 1d - •Check file encoding:
file_stats.py data.csv - •Compare configs:
compare_files.py old.conf new.conf
Notes
- •All scripts use Python standard library only (no external dependencies)
- •Handles both text and binary files appropriately
- •Encoding detection is best-effort for text files
- •Symbolic links are followed by default