Linux · Internet
s3cmd
s3cmd is a command‑line tool for managing objects in Amazon S3 and compatible storage services.
- License
- GPL-2.0
- Latest version
- 2.4.0
What is s3cmd?
s3cmd has been around since the early 2010s and is maintained in the major Linux distro repositories, so it’s a mature, stable utility. It lets you list, upload, download, sync and delete objects in S3 buckets using simple commands, and it works with any S3‑compatible endpoint such as MinIO or Ceph.
The tool is aimed at sysadmins, developers and power users who prefer scripts or terminal workflows over graphical interfaces. It integrates well with cron jobs, CI pipelines and other automation tools, making bulk operations straightforward.
Compared with Microsoft Azure Storage Explorer, s3cmd lacks a GUI but offers far more control via scripting. It feels lightweight and fast, but you must remember the syntax and configure credentials manually, unlike the point‑and‑click experience of the Windows app.
Best for: Users who need fast, scriptable access to S3 storage without a GUI.
Key features of s3cmd
- Upload, download, delete, and list objects
- Recursive sync between local directories and buckets
- Support for multipart uploads
- Configurable S3 endpoint for compatible services
- Built‑in progress bars and MD5 checksum verification
- Can generate pre‑signed URLs
- Supports ACL and storage class settings
- Works with standard AWS credential files
Pros
- Runs on any Linux distribution from official repos
- Scriptable and ideal for automation
- Lightweight with no GUI dependencies
- Handles large files via multipart upload
Cons
- No graphical interface, steep learning curve for beginners
- Credential management is manual; no built‑in secret store
- Limited to S3‑compatible services, not a full cloud console
Windows programs s3cmd replaces
How to install s3cmd on Linux
sudo apt install s3cmdsudo apt install s3cmdsudo dnf install s3cmdsudo pacman -S s3cmdsudo zypper install s3cmdTips for Windows users
Export your Azure Storage Explorer credentials to the standard AWS credentials file (~/.aws/credentials) and point s3cmd at the same endpoint using the --host and --host-bucket options. Replace drag‑and‑drop actions with s3cmd commands like s3cmd sync ./local/ s3://bucket/ for bulk transfers, and use tab‑completion to speed up typing.
s3cmd: frequently asked questions
How do I configure s3cmd for a non‑AWS S3 endpoint?
Run s3cmd --configure and set the ‘S3 endpoint’ and ‘S3 hostname’ fields to your service’s URL.
Can s3cmd resume interrupted uploads?
Yes, multipart uploads can be resumed by re‑issuing the same upload command; s3cmd will skip already uploaded parts.
Is there a way to encrypt files before uploading with s3cmd?
s3cmd itself does not encrypt data, but you can pipe files through GPG or use client‑side encryption tools before calling s3cmd.
How do I generate a pre‑signed URL with s3cmd?
Use s3cmd signurl s3://bucket/object 3600 where the number is the validity period in seconds.
Updated