Complete guide to mastering file backups in Linux!
- Introduction
- Installation
- Basic Usage
- Advanced Features
- Best Practices
- Comparison with Other Methods
- FAQ
A Nautilus extension that adds right-click backup functionality to Ubuntu/Linux, just like Windows and macOS have built-in.
Without this extension:
# Manual terminal commands
cp important.txt important_backup_$(date +%Y-%m-%d).txt
tar -czf project_backup.tar.gz project/
# Every. Single. Time. 😫With this extension:
Right-click → Backup → Done! 🎉
✅ Zero terminal commands
✅ Automatic timestamps
✅ Visual feedback
✅ Works like native OS feature
✅ Handles files and folders
✅ Desktop notifications
# Check Nautilus version
nautilus --version
# Check Python
python3 --versiongit clone https://github.com/yourusername/nautilus-backup-extension.git
cd nautilus-backup-extension
chmod +x install.sh
./install.shThe installer will:
- ✓ Check for dependencies
- ✓ Install
python3-nautilusif needed (asks for sudo) - ✓ Copy extension to correct location
- ✓ Create backup folder (
~/Backups) - ✓ Restart Nautilus
- ✓ Show success message
# Check extension is installed
ls ~/.local/share/nautilus-python/extensions/nautilus-backup.py
# Open Nautilus and right-click any file
# You should see "🔄 Backup" in menuWhen to use: Before editing a file, quick safety copy
Steps:
- Right-click file/folder
- Hover over 🔄 Backup
- Click ⚡ Quick Backup (Same Folder)
- Done!
Result:
Original: report.docx
Backup: report_backup_2024-12-22_14-30-00.docx
↑ Same folder, timestamped
Notification:
╔════════════════════════════╗
║ Backup Complete ✓ ║
╠════════════════════════════╣
║ Backed up to: ║
║ /home/user/Documents ║
╚════════════════════════════╝
When to use: Archive with specific name, save to different location
Steps:
- Right-click file/folder
- Hover over 🔄 Backup
- Click 💾 Backup As...
- Choose name (or keep suggested)
- Choose location
- Click Save
Example Dialog:
╔══════════════════════════════════════╗
║ Backup As... ║
╠══════════════════════════════════════╣
║ Save in: ~/Documents [▼] ║
║ Name: project_v1.0.tar.gz ║
║ ║
║ [Cancel] [Save] ║
╚══════════════════════════════════════╝
When to use: Regular backups, keeping all backups in one place
Steps:
- Right-click file/folder
- Hover over 🔄 Backup
- Click 🗂️ Backup to ~/Backups
- Done!
Result:
All backups organized in ~/Backups/:
~/Backups/
├── report_backup_2024-12-20_10-00-00.docx
├── report_backup_2024-12-21_15-30-00.docx
├── report_backup_2024-12-22_14-30-00.docx
├── project_backup_2024-12-22_14-35-00.tar.gz
└── image_backup_2024-12-22_14-40-00.png
Select multiple files at once:
Steps:
- Hold Ctrl and click multiple files
- Right-click selection
- Choose backup option
- All files backed up with one click!
Example:
Selected:
✓ report.docx
✓ presentation.pptx
✓ data.xlsx
After Quick Backup:
✓ report_backup_2024-12-22_14-30-00.docx
✓ presentation_backup_2024-12-22_14-30-01.pptx
✓ data_backup_2024-12-22_14-30-02.xlsx
Automatic tar.gz creation:
When you backup a folder, it's automatically compressed:
Folder: ~/Projects/myapp/
├── src/
├── docs/
└── config/
Backup: myapp_backup_2024-12-22_14-30-00.tar.gz
(All contents preserved, compressed)
Benefits:
- ✓ Saves disk space (compression)
- ✓ Single file to manage
- ✓ Easy to share
- ✓ Preserves structure and permissions
Access Settings:
- Right-click any file
- Backup → ⚙️ Backup Settings
Settings Panel:
╔════════════════════════════════════════╗
║ Backup Settings ║
╠════════════════════════════════════════╣
║ ║
║ Backup Folder: ║
║ /home/user/Backups [Browse] ║
║ ║
║ Features: ║
║ ⚡ Quick Backup - Timestamped ║
║ 💾 Backup As - Custom name ║
║ 🗂️ Backup to ~/Backups ║
║ 📁 Works with folders (.tar.gz) ║
║ 🔔 Desktop notifications ║
║ ║
║ v1.0.0 ║
║ ║
║ [Open Backups Folder] [Close] ║
╚════════════════════════════════════════╝
Change Backup Folder:
- Click Browse
- Select new location
- Auto-saves!
✓ Right-click → Quick Backup
✓ Edit file
✓ If mistakes → Use backup
✓ If good → Delete backup (or keep)
Daily:
# Important configs
~/.bashrc → Backup to ~/Backups
~/.ssh/config → Backup to ~/BackupsWeekly:
# Project folders
~/Projects/current-project/ → Backup to ~/Backups
~/Documents/important/ → Backup to ~/BackupsBefore System Changes:
# System configs (if editing)
/etc/fstab → Backup As... → ~/safe-place/
/etc/ssh/sshd_config → Backup As...Use Backup As... for versions:
project_v1.0.tar.gz
project_v1.1.tar.gz
project_v2.0.tar.gz
project_v2.0_final.tar.gz
project_v2.0_final_FINAL.tar.gz 😅
Use Quick Backup for iterations:
document.txt
document_backup_2024-12-22_10-00-00.txt (morning version)
document_backup_2024-12-22_15-00-00.txt (afternoon version)
document_backup_2024-12-22_18-00-00.txt (final version)
Manual cleanup:
# View backups sorted by date
ls -lt ~/Backups/
# Remove old ones
rm ~/Backups/*_2024-01-*Keep last N backups:
# Keep only last 10 backups of a file
ls -t ~/Backups/report_backup_* | tail -n +11 | xargs rm| Feature | Terminal cp |
Nautilus Backup |
|---|---|---|
| Ease of use | ❌ Complex | ✅ Right-click |
| Timestamps | ❌ Manual | ✅ Automatic |
| Folder compression | ❌ Separate tar | ✅ Automatic |
| Visual feedback | ❌ None | ✅ Notifications |
| Choose location | ✅ Yes | ✅ GUI dialog |
| Undo mistakes | ❌ No | ✅ Easy restore |
| Learning curve | ❌ High | ✅ Zero |
| Feature | Timeshift/Déjà Dup | Nautilus Backup |
|---|---|---|
| Quick single file | ❌ Overkill | ✅ Perfect |
| System restore | ✅ Yes | ❌ Not designed for |
| Manual control | ✅ Full control | |
| Instant backup | ❌ Scheduled | ✅ On-demand |
| Same folder | ❌ No | ✅ Yes |
| Setup time | ✅ 2 min |
| Feature | Dropbox/Google Drive | Nautilus Backup |
|---|---|---|
| Offline | ❌ Needs internet | ✅ Works offline |
| Speed | ✅ Instant | |
| Privacy | ✅ Local only | |
| Cost | ✅ Free | |
| Versioning | ✅ Auto | ✅ Manual |
| Access anywhere | ✅ Yes | ❌ Local only |
| Feature | Git | Nautilus Backup |
|---|---|---|
| For code | ✅ Perfect | |
| For documents | ✅ Perfect | |
| Learning curve | ❌ High | ✅ Zero |
| Single files | ✅ One click | |
| Diff/merge | ✅ Advanced | ❌ No |
| Quick backup | ❌ Ceremony | ✅ Instant |
Best of both worlds: Use Git for code, Nautilus Backup for documents/configs!
A: By default in ~/Backups/. Change this in Settings.
Quick Backup saves to the same folder as the original.
A: Yes! Just:
- Find your backup file
- Copy it over the current file
- Or rename the backup to remove
_backup_timestamp
Future version will have "Restore" right-click option!
A: Folders are automatically compressed (tar.gz), saving space.
For very large folders (>10GB), compression takes time but works fine.
A: Yes! Use "Backup As..." and select your external drive location.
Or change default backup folder in Settings to your external drive.
A: Yes! Works with any location Nautilus can access:
- SMB/CIFS shares
- NFS mounts
- SSHFS
- Cloud storage mounts (rclone, etc.)
A:
- Select all files (Ctrl+Click or Ctrl+A)
- Right-click
- Choose backup option
- All selected files backed up!
A: YYYY-MM-DD_HH-MM-SS
Example: 2024-12-22_14-30-00
This sorts chronologically and avoids file name conflicts.
A: Currently no, but it's on the roadmap! (v1.1.0)
Current format is internationally standard and sorts properly.
A: Yes! Uses Python's shutil.copy2 which preserves:
- Permissions
- Timestamps
- Metadata
For folders, tar preserves everything.
A: Timestamps prevent conflicts. Each backup gets unique timestamp.
If backing up twice in same second, system handles it (rarely happens).
A: Not yet. This is for on-demand backups.
For scheduled backups, use:
- Timeshift (system)
- Déjà Dup (files)
- Cron + rsync (custom)
Or wait for v1.2.0 which will have scheduling!
A: Currently only Nautilus (GNOME Files).
Potential future support:
- Nemo (Cinnamon) - Easy port
- Caja (MATE) - Easy port
- Thunar (XFCE) - Different system
- Dolphin (KDE) - Different system
Want it for your file manager? Open a feature request!
A: Yes! The extension:
- ✓ Only reads/copies files (never modifies originals)
- ✓ Shows confirmation for destructive operations
- ✓ Uses standard Python libraries
- ✓ Open source (audit the code!)
A: You can! But this is much faster and easier:
Terminal way:
cp important.txt important_backup_$(date +%Y-%m-%d_%H-%M-%S).txtThis way:
Right-click → Quick Backup
No comparison! 😊
A: Yes! The extension uses standard file operations.
Your scripts can work alongside it. Example:
#!/bin/bash
# Your automated backup script
rsync -av ~/Documents/ ~/Backups/automated/
# Manual backups via extension go to ~/Backups/
# No conflict!A: Symbolic links are preserved by default.
For folders, tar includes the links (not dereferenced).
A: No artificial limit. Limited only by:
- Available disk space
- File system limits
- Time (large files take time to copy)
A: Yes! Tested on both X11 and Wayland.
Notifications work on both.
A:
./uninstall.shOr manually:
rm ~/.local/share/nautilus-python/extensions/nautilus-backup.py
nautilus -qYour backup files remain untouched.
1. Right-click (or Menu key)
2. Press 'B' (highlights Backup)
3. Press '→' (opens submenu)
4. Press 'Q' (Quick Backup)
Total: 4 keystrokes!
# Select all configs
Ctrl+A in ~/.config/app/
# Backup all
Right-click → Quick Backup
# Now safely edit1. Plug in USB
2. Mount it (auto-mounts usually)
3. Right-click files → Backup As...
4. Choose USB location
5. Done! Safe external backup
Project workflow:
1. Work in progress → Nautilus Quick Backup
2. Feature complete → Git commit
3. Release ready → Nautilus Backup As v1.0
Check Nautilus extensions:
python3 << EOF
import gi
gi.require_version('Nautilus', '3.0')
from gi.repository import Nautilus
EOFIf error → reinstall python3-nautilus
Check permissions:
# Can you write to destination?
touch ~/Backups/test.txt
rm ~/Backups/test.txt
# Can you read source?
cat /path/to/file > /dev/nullCheck notification daemon:
notify-send "Test" "Testing notifications"If nothing shows → notification system issue (not extension).
Large folder?
du -sh /path/to/folderIf >5GB → Takes time to compress. This is normal.
Consider excluding large files or using Backup As to uncompressed location.
Issues? Check:
- This guide
- README.md
- GitHub Issues
- Ask the community
Feature requests? Open a GitHub issue!
Contributing? PRs welcome!
Happy backing up! 🚀📦
Remember: The best backup is the one you actually do!