Copy Files and Folders
This page explains the Copy Files and Folders feature in GoAdmio. It lets you copy the files and folders of one domain account to another — on the same local server only — without moving them and without copying databases.
Location: Admin Panel → Backup → Copy Files and Folders
Overview
Duplicating a website's files is a common task: cloning a site, migrating to a new domain, creating a staging copy, or moving a customer's files between accounts. Doing it by hand means SSH, rsync, scp, or a file manager — error-prone and slow for large sites.
The Copy Files and Folders tool handles this in a guided workflow. It copies the files — the source account's files remain untouched.
> Important — this tool copies, it does not move:
>
> - ✅ The source account's files are left intact — nothing is deleted or moved from the source.
> - ✅ The destination receives a copy of the files.
> - ⚠️ The destination account must be empty — the tool is designed to copy into a clean destination.
> Important — local server only:
>
> - ✅ Source and destination must be on the same GoAdmio server.
> - ❌ Remote servers are not supported by this tool.
> - To migrate files to another server, use Server-to-Server Sync or the CLI (/go/copy, /go/cf, rsync).
What it copies:
- ✅ Website files (
www,public_html) - ✅ Configuration files (
.htaccess,wp-config.php, etc.) - ✅ Uploads, themes, plugins, media
- ✅ FTP configuration files
- ❌ Databases — not copied (see Copy MySQL Database for that)
- ❌ Email mailboxes — not copied (use Backup Wizard for a full account copy)
wp-config.php) with the new database credentials.
Copy vs. Move
The distinction is important:
| Action | What happens to the source | What happens to the destination |
|---|---|---|
| Copy (this tool) | Files remain in the source | Destination receives a copy |
| Move | Files are removed from the source | Destination receives the original files |
> Note: GoAdmio's Copy Files and Folders does not move files. If you want to move files (and remove them from the source), you must copy first, then delete the source files manually via File Manager or SSH. Only do this after verifying the copy is complete and correct.
> Tip: Copying is safer than moving — the source remains as a fallback if anything goes wrong.
Destination Must Be Empty
The destination account should be empty when you use this tool — it is designed to copy into a clean target.
| Destination state | What happens |
|---|---|
| Empty account (recommended) | The copy proceeds cleanly — no conflicts |
| Account with existing files | The copy may overwrite existing files (if overwrite is enabled) or skip them (if disabled) |
| Destination directory does not exist | The tool may create it, or fail — depends on your version |
> Warning: Copying into a non-empty destination can cause file conflicts, overwrites, or inconsistent states. If the destination contains a working site, you may destroy it. Always:
>
> 1. Use an empty destination account, or
> 2. Explicitly enable Overwrite only when you intend to replace the destination's files, and
> 3. Take a snapshot of the destination first — see Snapshots.
> Tip: For a new domain account, create it first — see Create New Account — and leave it empty. Then run the copy into it.
When to Use This Feature
| Scenario | Use this feature? |
|---|---|
| Clone a static website from one account to another (same server) | ✅ Yes |
| Copy a website's files to a new, empty account (same server) | ✅ Yes |
| Create a staging copy of a site (same server) | ✅ Yes — copy files, then create a separate database |
| Duplicate a WordPress installation (same server) | ✅ Yes — copy files, then copy the database |
| Copy a single account's files to a backup location (same server) | ✅ Yes |
| Move files (remove from source) | ⚠️ Copy first, then delete the source manually |
| Copy files to another server | ❌ Not supported — use Server-to-Server Sync or /go/copy |
| Copy databases | ❌ Use Copy MySQL Database |
| Copy email mailboxes | ❌ Use Backup Wizard or Restore Full Backup |
| Copy an entire server | ❌ Use Server-to-Server Sync |
What the Page Shows
| Field | Description |
|---|---|
| Source Account | The account whose files will be copied |
| Source Directory | The directory to copy (e.g., www/<domain>, or the whole home directory) |
| Destination Account | The account that will receive the files — must be empty |
| Destination Directory | Where the files will be placed (e.g., www/<domain>, or a subdirectory) |
| Overwrite | Whether to replace existing files in the destination |
| Preserve Permissions | Whether to preserve file ownership and permissions |
| Copy | Start the copy |
| Status / Output | Progress and result |
> Note: The exact fields depend on your GoAdmio version. Some versions have a Destination Server field — if present, choose Local or the current server. Remote destinations are not supported by this tool.
Prerequisites
Before copying files:
- The source account exists and contains the files you want to copy. See List Accounts.
- The destination account exists and is empty — see Create New Account.
- Both accounts are on the same local server.
- The destination has enough disk space — the copied files count toward the destination account's quota. See Show Accounts Over Quota.
- For a live site: consider a brief maintenance window — the copy is a snapshot of the files at the moment it runs, and files modified during the copy may be inconsistent.
How to Copy Files Between Accounts
Step 1 — Open the tool
- Log in to the GoAdmio Admin Panel.
- Navigate to Backup → Copy Files and Folders.
Step 2 — Select the source
- Choose the Source Account from the dropdown.
- Choose the Source Directory — for example:
www/<domain> — the website files only
- /home/<username> — the entire account (including configuration files)
- www/<domain>/wp-content — a specific subdirectory
> Tip: To copy only the website, use www/<domain>. To copy the entire account's files, use /home/<username>. The latter includes more but takes longer.
Step 3 — Select the destination
- Choose the Destination Account — it must be empty.
- Choose the Destination Directory — for example:
www/<new-domain> — place the files under the new domain's document root
- www/<new-domain>/staging — place them in a subdirectory
- /home/<new-username> — merge into the destination account's home directory
> Warning: If the destination directory already contains files, the Overwrite option determines whether they are replaced. Copying into a non-empty destination — or into the wrong directory — can overwrite a live site.
> Note: The destination must be a local account on the same server. Remote destinations are not supported by this tool.
Step 4 — Configure options
| Option | Recommendation |
|---|---|
| Overwrite | Leave disabled if the destination is empty — no files to overwrite. Enable only if you intend to replace existing files. |
| Preserve Permissions | Enable — ensures files retain the correct ownership and modes |
| Exclude (if available) | Exclude large caches, temporary files, or .git directories if not needed |
Step 5 — Copy
- Click Copy (or Start Copy).
- Monitor the progress.
- Wait for the copy to complete — large sites may take several minutes.
- The source account is unchanged — nothing is moved or deleted.
Step 6 — Verify the copy
- Use File Manager to browse the destination directory and confirm the files are present.
- Check the file count and total size.
- Confirm the source account still contains its files.
- Test the destination site — see Track DNS and Service Status.
- Run Fix Permissions if file ownership is wrong.
What Gets Copied
| Item | Copied? | Notes |
|---|---|---|
| Website files (www, public_html) | ✅ Yes | The account's document root |
| Configuration files (.htaccess, wp-config.php) | ✅ Yes | Included in the copy |
| Uploads, themes, plugins, media | ✅ Yes | All files in the source directory |
| FTP configuration files | ✅ Yes | If included in the source path |
| .git directories (if present) | ⚠️ Depends | Can be excluded for speed |
| Caches and temporary files | ⚠️ Depends | Can be excluded |
| Databases | ❌ No | See Copy MySQL Database |
| Email mailboxes | ❌ No | Use Backup Wizard for a full copy |
| Cron jobs | ❌ No | Re-create via Cron Jobs |
| DNS zones | ❌ No | Managed separately — see DNS Manager |
| SSL certificates | ❌ No | Re-issue after the copy — see Install Free SSL Certificate |
> Warning: If the site uses a database (WordPress, Joomla, Drupal, etc.), the copied files will not work on the destination until you also copy the database and update the configuration file with the new database credentials. See Copy MySQL Database.
After Copying
| Task | Why |
|---|---|
| Copy the database if the site uses one | See Copy MySQL Database |
| Update the configuration file | Point wp-config.php (or equivalent) to the copied database |
| Run Fix Permissions | Restored files may have wrong ownership |
| Test the site | Confirm it loads and functions correctly |
| Re-issue SSL | Certificates are not copied — see Install Free SSL Certificate |
| Update DNS if the site uses a new domain | See DNS Manager |
| Clear caches | CDN or full-page cache may serve old content — see Cache Website |
| Re-create cron jobs | If the site relies on scheduled tasks — see Cron Jobs |
| Scan for malware | If copying from an untrusted source — see ClamAV Antivirus |
| Delete the source files (only if you intended to move) | Only after verifying the copy is complete |
Common Scenarios
"Clone a website to a new, empty account on the same server"
- Create the destination account — see Create New Account — and leave it empty.
- Copy the files from the source to the destination.
- Copy the database — see Copy MySQL Database.
- Update the destination's
wp-config.phpwith the new database credentials. - Update the WordPress site URL if needed.
- Test the site.
"Create a staging copy on the same server"
- Create an empty staging account.
- Copy the files from the production account to the staging account.
- Copy the database to the staging account.
- Update the staging site's configuration to point to the staging database.
- Change the site URL in the staging database (or use a staging-specific configuration).
- Test.
"Copy only the uploads folder"
- Set the Source Directory to
www/<domain>/wp-content/uploads. - Set the Destination Directory to the same relative path under the destination account.
- Copy.
"I want to move files to another server"
This tool does not support remote destinations. To migrate files to another server:
- Use Server-to-Server Sync — migrates an entire GoAdmio server.
- Or use the CLI:
/go/copy— copies a site between servers. - Or use
rsyncover SSH from the shell — see Terminal.
/go/copy is the simplest option. For many sites, Server-to-Server Sync is more efficient.
"The destination site does not work after the copy"
If the site uses a database:
- Verify the database was copied — see Copy MySQL Database.
- Check the configuration file (
wp-config.php,configuration.php, etc.) — it must point to the destination's database, not the source's. - Check the site URL — WordPress and other CMSs store the URL in the database; it may still point to the old domain.
- Clear caches.
Security Considerations
| Consideration | What to know |
|---|---|
| Local only | Both accounts must be on the same server — no remote credentials involved |
| File permissions | Preserve permissions during the copy, or run Fix Permissions after |
| Malware | If copying from an untrusted source, scan with ClamAV Antivirus |
| Sensitive files | Configuration files contain database credentials — ensure the destination is secure |
| Overwrite | Enabling overwrite can destroy existing files — use with care |
| Audit | Document the copy for future reference |
> Warning: The copy is a snapshot of the files at the moment it runs. If the source site is live and being modified during the copy, the destination may contain an inconsistent mix of old and new files. Consider putting the source in maintenance mode, or copying during low-traffic hours.
Related Commands
| Command | Purpose |
|---|---|
| /go/cf | Copy files from one folder to another (local) |
| /go/copywww | Copy the www directory from one domain to another (local or remote) |
| /go/copy | Copy a site between servers (remote) |
| /go/copydatabase | Copy a database between servers |
| /go/serversync | Sync an entire server to another GoAdmio server |
| rsync | Manual file sync (for advanced use) |
See Command Reference for the full CLI list.
Related Pages
- Copy MySQL Database — copy the database that the files need
- Backup Wizard — full account backup including files, databases, and email
- Restore Full Backup — restore a full account
- Snapshots — fast point-in-time recovery
- Server-to-Server Sync — migrate an entire server to another
- Copy Table — copy a single database table
- File Manager — inspect the copied files
- Fix Permissions — repair file ownership
- Change Document Root — point a domain at the copied files
- Install Free SSL Certificate — re-issue SSL after the copy
- DNS Manager — update DNS for the destination domain
- Cron Jobs — re-create scheduled tasks
- ClamAV Antivirus — scan copied files
- Cache Website — clear cache after the copy
Troubleshooting
| Problem | Likely cause | Solution |
|---|---|---|
| Copy fails with "permission denied" | The destination account lacks permission to write | Verify the destination directory is writable; use an account with sufficient privileges |
| Copy fails with "no space left" | Destination account is over quota | Free space; raise the quota — see Modify Account |
| Copy is very slow | Large account, slow disk, or many small files | Run during low-traffic hours; exclude caches; use the CLI (rsync) for large copies |
| Destination site does not load | Database not copied, or config not updated | Copy the database — see Copy MySQL Database; update the configuration |
| Destination site shows the old site's content | Cache (browser, CDN, or full-page) | Purge cache — see Cache Website; hard-refresh the browser |
| File permissions are wrong | Ownership not preserved | Run Fix Permissions |
| Cannot select a remote destination | This tool is local-only | Use Server-to-Server Sync or /go/copy for remote servers |
| Copy overwrote a live site | Overwrite was enabled with a non-empty destination | Restore from a snapshot — see Snapshots |
| Copied files contain malware | Source was compromised | Scan with ClamAV Antivirus; clean the source |
| Copied site's URLs still point to the old domain | WordPress or CMS stores the URL in the database | Update the site URL in the database, or use a migration plugin |
| Source files were deleted | Copy was mistaken for a move, or manual deletion was done prematurely | Restore the source from a snapshot — see Snapshots |
Best Practices
| Practice | Why |
|---|---|
| This tool copies, not moves | The source remains as a fallback |
| Local server only | Remote destinations are not supported — use Server-to-Server Sync |
| Use an empty destination account | Avoids conflicts and unintended overwrites |
| Copy the database separately | Files alone do not make a working site if the app uses a database |
| Update the configuration after copying | Point the destination at its own database |
| Preserve permissions | Avoids permission errors after the copy |
| Run Fix Permissions after the copy | Ensures files are owned correctly |
| Re-issue SSL | Certificates are not copied |
| Clear caches after copying | Prevents stale content |
| Test the destination site | Confirms the copy worked |
| Verify the copy before deleting the source | Only delete the source if you intended to move |
| Document the copy | Audit trail for future reference |
| Avoid copying during live traffic | Prevents inconsistent file states |
| Scan copied files for malware | Especially if the source was untrusted |
Last updated: 2026-11-08