Hostxpeed
Login Get Started →
Getting Started

How to Rename Files

4 min read
25 views
Jun 13, 2026

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.

Was this article helpful?