Prerequisites
Before renaming files, make sure you have:
- SSH access to your VPS
- Write permissions for the file and directory
Method 1: Using mv (Simple Rename)
Connect to your VPS:
ssh hxroot@YOUR_SERVER_IP -p 22
Basic rename:
mv oldname.txt newname.txt
Interactive rename (ask before overwrite):
mv -i oldname.txt newname.txt
Method 2: Rename Multiple Files with mv and Loop
Add prefix to all .txt files:
for file in *.txt; do mv "$file" "backup_$file"; done
Add suffix:
for file in *.txt; do mv "$file" "${file%.txt}_old.txt"; done
Change extension:
for file in *.htm; do mv "$file" "${file%.htm}.html"; done
Convert to lowercase:
for file in *; do mv "$file" "$(echo $file | tr '[:upper:]' '[:lower:]')"; done
Convert to uppercase:
for file in *; do mv "$file" "$(echo $file | tr '[:lower:]' '[:upper:]')"; done
Method 3: Using rename Command (Perl-based)
Install rename if not available:
apt install rename -y
Replace spaces with underscores:
rename 's/ /_/g' *
Change extension:
rename 's/.htm$/.html/' *.htm
Remove "old_" prefix:
rename 's/^old_//' *
Add date prefix:
rename 's/^/2024_/' *.txt
Convert to lowercase:
rename 'y/A-Z/a-z/' *
Method 4: Rename with Date
mv access.log "access_$(date +%Y%m%d).log"
For multiple log files:
for file in *.log; do mv "$file" "${file%.log}_$(date +%Y%m%d).log"; done
Method 5: Remove Spaces from Filenames
for file in * *; do mv "$file" "${file// /_}"; done
Method 6: Remove Special Characters
for file in *; do newname=$(echo "$file" | sed 's/[^a-zA-Z0-9._-]/_/g'); mv "$file" "$newname"; done
Method 7: Truncate Long Filenames
Keep first 20 characters:
for file in *; do mv "$file" "$(echo $file | cut -c1-20)"; done
Practical Examples
Rename image files sequentially:
count=1; for file in *.jpg; do mv "$file" "image_$count.jpg"; ((count++)); done
Rename backup files with timestamp:
for file in backup_*.sql; do mv "$file" "${file%.sql}_$(date +%Y%m%d).sql"; done
Remove numbers from filenames:
rename 's/[0-9]//g' *
Safety Precautions
Dry run first (echo what would happen):
for file in *.txt; do echo mv "$file" "new_$file"; done
Then run the actual command.
Create backup before batch rename:
mkdir rename_backup
cp * rename_backup/
Rename Script with Confirmation
#!/bin/bash
echo "Current files:"
ls *.txt
echo "Add prefix (e.g., backup_):"
read prefix
for file in *.txt; do
echo "Renaming: $file -> ${prefix}$file"
mv "$file" "${prefix}$file"
done
echo "Done. New files:"
ls *.txt
✅ You can now rename files using multiple methods on your Hostxpeed VPS.