Platform Support
Renamify is designed to work consistently across Linux, macOS, and Windows. It handles platform-specific quirks intelligently.
Supported Platforms
Section titled “Supported Platforms”✅ Linux (x86_64, arm64) ✅ macOS (Intel and Apple Silicon) ✅ Windows (x86_64, arm64)
Case-Insensitive Filesystems
Section titled “Case-Insensitive Filesystems”macOS (APFS/HFS+)
Section titled “macOS (APFS/HFS+)”Most macOS systems use case-insensitive filesystems. Renamify handles this by:
- Automatic detection of filesystem case sensitivity
- Two-step renames for case-only changes:
OldName.js
→temp_12345.js
temp_12345.js
→oldName.js
- Conflict warnings when case changes might cause issues
Windows (NTFS)
Section titled “Windows (NTFS)”Windows filesystems are typically case-insensitive. Renamify provides:
- Smart rename handling similar to macOS
- Reserved filename detection (CON, PRN, AUX, NUL, COM1-9, LPT1-9)
- Path length validation (260 character limit without long path support)
Linux (ext4/btrfs/etc.)
Section titled “Linux (ext4/btrfs/etc.)”Most Linux filesystems are case-sensitive, allowing:
- Direct renames without intermediate steps
- Full Unicode support for international characters
- No reserved filename restrictions
Path Handling
Section titled “Path Handling”Path Separators
Section titled “Path Separators”Renamify accepts both forward slashes and backslashes:
# These are equivalent on Windowsrenamify plan old new --include "src/**/*.js"renamify plan old new --include "src\\**\\*.js"
Path Length Limits
Section titled “Path Length Limits”Windows: 260 characters by default
# Renamify detects and warns about long paths❌ Error: Path too long for Windows:"C:\very\long\path\that\exceeds\260\characters\..."
Enable long paths or use shorter directory names.
macOS/Linux: Much higher limits (typically 4096+ characters)
Unicode Support
Section titled “Unicode Support”Renamify fully supports Unicode filenames and content:
# Works with international charactersrenamify rename 用户 profile --preview tablerenamify rename josé maria --preview table
Symbolic Links
Section titled “Symbolic Links”Behavior
Section titled “Behavior”- Symlink files can be renamed if their names match the pattern
- Symlink targets are never modified
- Directory traversal does not follow symlinks by default
Cross-Platform Differences
Section titled “Cross-Platform Differences”Linux/macOS:
- Full symlink support
- Can create and modify symlinks
Windows:
- Limited symlink support (requires admin privileges)
- Renamify handles gracefully without errors
File Permissions
Section titled “File Permissions”Unix-like Systems (Linux/macOS)
Section titled “Unix-like Systems (Linux/macOS)”# Renamify respects and preserves file permissionsls -la before.js # -rw-r--r--renamify rename old newls -la after.js # -rw-r--r-- (preserved)
Windows
Section titled “Windows”- Uses Windows ACLs appropriately
- Handles read-only files with clear error messages
Performance Characteristics
Section titled “Performance Characteristics”- Fastest performance due to efficient filesystem operations
- Parallel directory traversal scales well with CPU cores
- Memory-mapped file I/O for large files
- Good performance with some filesystem overhead
- APFS optimizations for recent macOS versions
- Slightly slower renames due to case-insensitivity handling
Windows
Section titled “Windows”- Good performance with Windows-specific optimizations
- NTFS optimizations for efficient file operations
- Long path support (handles paths with \?\ prefix)
- Antivirus interaction may slow operations
Known Platform Issues
Section titled “Known Platform Issues”- Unicode normalization: macOS may normalize Unicode differently
- Resource forks: Very old HFS+ volumes may have resource forks (rarely an issue)
- Spotlight indexing: May temporarily slow file operations
Windows
Section titled “Windows”- Antivirus scanning: Real-time scanners may slow file operations
- File locking: Some editors/IDEs lock files more aggressively
- Long path support: Automatically handled with \?\ prefix when needed
- Case sensitivity: Be careful when moving code between case-sensitive and case-insensitive systems
- Filesystem differences: Some network filesystems may have quirks
Environment Variables
Section titled “Environment Variables”Platform Detection
Section titled “Platform Detection”Renamify automatically detects platform capabilities:
# Force platform behavior (rarely needed)RENAMIFY_PLATFORM=linux renamify plan old new # Force Linux behaviorRENAMIFY_PLATFORM=windows renamify plan old new # Force Windows behavior
File System Override
Section titled “File System Override”# Force case sensitivity detection (expert use only)RENAMIFY_CASE_SENSITIVE=true renamify plan old newRENAMIFY_CASE_SENSITIVE=false renamify plan old new
Best Practices by Platform
Section titled “Best Practices by Platform”# Take advantage of case sensitivityrenamify rename oldName OldName # Works directly
# Use parallel processing for large projectsrenamify plan old new --include "**/*.rs" # Fast on Linux
# Be aware of case insensitivityrenamify rename oldName OldName --preview table # Shows two-step rename
# Consider filesystem overhead for huge projectsrenamify plan old new --include "src/**" --exclude "node_modules/**"
Windows
Section titled “Windows”# Use forward slashes for consistencyrenamify plan old new --include "src/**/*.js"
# Be mindful of path lengthsrenamify plan old new --exclude "**/very/deeply/nested/directories/**"
Cross-Platform Testing
Section titled “Cross-Platform Testing”For teams working across platforms:
# Test your renaming on multiple platformsgit branch test-renamerenamify rename old new --preview tablegit commit -m "Test rename"
# Have team members test on their platformsgit push origin test-rename
Platform-Specific Optimizations
Section titled “Platform-Specific Optimizations”Planned Improvements
Section titled “Planned Improvements”- macOS: Better APFS optimization
- Linux: io_uring support for faster file operations
- All: Platform-specific ignore patterns