Commands
Delete
Removing files matching a pattern
rclone delete
Deletes files (not folders) that match your criteria.
| Command | What it does | Removes folders | Use case |
|---|---|---|---|
delete | Removes files only | ❌ | Selective file removal |
purge | Removes everything | ✅ | Delete entire folder |
cleanup | Empties trash | ✅ | Clean provider trash (if supported) |
rmdirs | Removes empty folders | ✅ | Clean up after delete |
Quick start
# Basic syntax (DANGEROUS)
rclone delete remote:path
# Delete with filter (safer)
rclone delete remote:path --include "*.tmp" --dry-run
rclone delete remote:path --include "*.tmp" # Actually delete
# Delete old files
rclone delete remote:backup --min-age 365d --dry-runUsage
Always Preview First
# Step 1: List what matches
rclone ls remote:folder --include "*.log"
# Step 2: Dry run delete
rclone delete remote:folder --include "*.log" --dry-run
# Step 3: Actually delete (if sure)
rclone delete remote:folder --include "*.log"Use Specific Paths
# BAD
rclone delete remote: --include "*.tmp" # Entire remote
# GOOD
rclone delete remote:project/temp --include "*.tmp" # Specific folderCreate Safety Backup
# Backup before bulk delete
rclone copy remote:important remote:important-backup
# Then safe to clean
rclone delete remote:important --min-age 180d
# At first, you may think we're simply duplicating the folder that we're going to delete.
# You're correct!
# This is to make sure that in case the `--min-age` filter doesn't work as expected,
# we have a backup of the important files.Interactive Deletion
# Confirm each file (safer for important data)
rclone delete remote:folder \
--include "*.bak" \
--interactiveFiltering
File Pattern
# Delete specific extensions
rclone delete remote:folder \
--include "*.bak" \
--include "*.old" \
--dry-run
# Delete except important files
rclone delete remote:folder \
--exclude "*.doc" \
--exclude "*.pdf" \
--dry-runSize
# Delete large files
rclone delete remote:folder --min-size 1G --dry-run
# Delete empty files
rclone delete remote:folder --max-size 0 --dry-run
# Delete files in size range
rclone delete remote:folder \
--min-size 100M \
--max-size 500M \
--dry-runAge
# Delete old files
rclone delete remote:folder --min-age 365d --dry-run
# Delete recent temporary files
rclone delete remote:temp --max-age 7d --dry-run
# Specific date range
rclone delete remote:folder \
--min-age 2023-01-01 \
--max-age 2023-12-31 \
--dry-runAdvanced
# Using filter file
cat > delete-filters.txt << EOF
- *.keep
- important/**
+ *.tmp
+ *.bak
+ cache/**
- *
EOF
rclone delete remote:folder --filter-from delete-filters.txt --dry-runUse cases & examples
Clean Temporary Files
# Remove .tmp and cache files
rclone delete remote:project \
--include "*.tmp" \
--include "*.cache" \
--include "*~" \
--dry-run
# After verifying, run without --dry-runRemove Old Backups
# Delete backups older than 90 days
rclone delete remote:backups \
--min-age 90d \
--dry-run \
--progress
# Keep last 7 daily backups
rclone delete remote:daily-backups \
--min-age 7d \
--dry-runLog Rotation
#!/bin/bash
# Clean old logs, keep recent
REMOTE="remote:logs"
# Keep last 30 days of logs
echo "Cleaning logs older than 30 days..."
rclone delete "$REMOTE" \
--include "*.log" \
--min-age 30d \
--dry-run
read -p "Delete these files? (y/n): " confirm
if [ "$confirm" = "y" ]; then
rclone delete "$REMOTE" \
--include "*.log" \
--min-age 30d \
--progress
fiRemember: Deletion is permanent on most cloud providers! There's no undo button. Always test with --dry-run and have backups.
You can always check out the full documentation if you need more information.
If you've deleted by mistake, check the FAQ for recovery options.
How is this guide?