proton drive items
Files and folders.
Every command under proton drive items, with the arguments and flags it takes. For these commands in use, see the drive guide.
Holds abuse, copy, create, delete, download, get, list, move, revisions, share, trash, update and upload.
Report something shared with you to Proton.
PATH is inside –shared REF, something somebody shared with you, or inside –link URL, a public link. Proton receives the key to the whole of what was shared, not only PATH. Copyright and stolen-data reports need –message and –email. Nothing withdraws a report, and the item stays where it is.
proton drive items abuse PATHproton drive items abuse /invoice.exe --shared Project --category malware --good-faithproton drive items abuse / --link 'https://drive.proton.me/urls/7X2K9M3N1P#kQ81mDx4T9wL' --category copyright --message 'My photos, published without permission' --email jane@proton.me --good-faith| Flag | Description |
|---|---|
--category string |
What the report is about: spam, copyright, child-abuse, non-consensual-intimate, stolen-data, malware, other |
--email string |
Where Proton can reach you about the report; required for copyright and stolen-data |
--good-faith |
Confirm, in good faith, that what the report says is correct and complete |
--link string |
Work inside a public link somebody sent you, by URL |
--link-password-file string |
Read the public link’s password from a file, or - for stdin |
--message string |
What Proton should know; required for copyright and stolen-data |
--shared string |
Work inside an item shared with you, by name or ID |
Copy files into another folder.
proton drive items copy [PATH...]proton drive items copy /Documents/report.pdf --into /Archiveproton drive items copy --pattern '*.pdf' --scope /Documents --into /Backup| Flag | Description |
|---|---|
--all |
Act on everything in scope, rather than a subset |
--computer string |
Work inside this computer’s files, by name or ID |
--into string |
Destination folder |
--keyword string |
Match text in the name, and in a file’s contents once a drive index exists |
--larger-than string |
Match files above SIZE (e.g. 100MB, 2GB) |
--limit int |
Most items to affect; 0 for no cap (default 150) |
--newer-than string |
Match files newer than DURATION |
--older-than string |
Match files older than DURATION (e.g. 30d, 2w, 1h) |
--pattern string |
Match names against a shell glob, e.g. *.tmp |
--recursive |
Descend into subfolders when filtering |
--scope string |
Look only inside this folder (default: the whole drive) |
--shared string |
Work inside an item shared with you, by name or ID |
--smaller-than string |
Match files below SIZE |
create
Section titled “create”Create a folder, and any missing folder above it.
PATH is in your own files. –computer REF creates inside a computer instead, –shared REF inside something somebody shared with you, and –link URL inside a public link. A share or a link has to allow editing.
proton drive items create PATHproton drive items create /Documents/2026proton drive items create /2026 --link 'https://drive.proton.me/urls/7X2K9M3N1P#kQ81mDx4T9wL'| Flag | Description |
|---|---|
--computer string |
Work inside this computer’s files, by name or ID |
--link string |
Work inside a public link somebody sent you, by URL |
--link-password-file string |
Read the public link’s password from a file, or - for stdin |
--shared string |
Work inside an item shared with you, by name or ID |
delete
Section titled “delete”Delete files or folders permanently.
PATH is in your own files. –computer REF deletes inside a computer instead, –shared REF inside something somebody shared with you, and –link URL inside a public link. In a link, you can delete only what you uploaded yourself, signed in, within the last hour. A link has no trash.
proton drive items delete [PATH...]proton drive items delete /Documents/report.pdfproton drive items delete --pattern '*.tmp' --scope /Build --recursive --yesproton drive items delete /photo.jpg --link 'https://drive.proton.me/urls/7X2K9M3N1P#kQ81mDx4T9wL'| Flag | Description |
|---|---|
--all |
Act on everything in scope, rather than a subset |
--computer string |
Work inside this computer’s files, by name or ID |
--keyword string |
Match text in the name, and in a file’s contents once a drive index exists |
--larger-than string |
Match files above SIZE (e.g. 100MB, 2GB) |
--limit int |
Most items to affect; 0 for no cap (default 150) |
--link string |
Work inside a public link somebody sent you, by URL |
--link-password-file string |
Read the public link’s password from a file, or - for stdin |
--newer-than string |
Match files newer than DURATION |
--older-than string |
Match files older than DURATION (e.g. 30d, 2w, 1h) |
--pattern string |
Match names against a shell glob, e.g. *.tmp |
--recursive |
Descend into subfolders when filtering |
--scope string |
Look only inside this folder (default: the whole drive) |
--shared string |
Work inside an item shared with you, by name or ID |
--smaller-than string |
Match files below SIZE |
download
Section titled “download”Download a file or folder.
A folder is refused without –recursive. With it, the folder lands as a directory of its own name inside –dest-dir, subfolders and all, and –dest is refused: one path cannot take a tree.
Behind a public link, a file is / when the link points at the file itself, and a path inside the folder when it points at a folder. A link with a password takes it from –link-password-file, which takes - for stdin.
proton drive items download PATHproton drive items download /Documents/report.pdf --dest-dir .proton drive items download /Documents --recursive --dest-dir .proton drive items download /Documents/report.pdf --dest - > report.pdfproton drive items download /report.pdf --shared Project --dest-dir .proton drive items download / --link 'https://drive.proton.me/urls/7X2K9M3N1P#kQ81mDx4T9wL' --dest-dir .proton drive items download / --link 'https://drive.proton.me/urls/7X2K9M3N1P#kQ81mDx4T9wL' --link-password-file /run/secrets/q3-link --dest-dir .| Flag | Description |
|---|---|
--computer string |
Work inside this computer’s files, by name or ID |
--dest string |
Write to this path, or - for stdout |
--dest-dir string |
Write into this directory, keeping each item’s own name |
--force |
Overwrite a file that already exists |
--link string |
Work inside a public link somebody sent you, by URL |
--link-password-file string |
Read the public link’s password from a file, or - for stdin |
--recursive |
Download a folder and everything under it |
--shared string |
Work inside an item shared with you, by name or ID |
Show a file or folder’s details.
Reached through a public link, the details include the link, whether it allows editing and, for a link saved with shared add, the password its owner set on it. Behind a link, Created By names you on what you uploaded there yourself, signed in. Anything else names nobody and Signature reads anonymous.
proton drive items get PATHproton drive items get /Documents/report.pdfproton drive items get / --shared Q3-report.pdf| Flag | Description |
|---|---|
--computer string |
Work inside this computer’s files, by name or ID |
--link string |
Work inside a public link somebody sent you, by URL |
--link-password-file string |
Read the public link’s password from a file, or - for stdin |
--shared string |
Work inside an item shared with you, by name or ID |
List what is in a folder.
Takes the same filters as move, copy, trash and delete, so you can preview a selection here before acting on it. What PATH is here, those commands call –scope. A filtered listing shows each item’s full path.
–keyword matches names, and the contents of your text files once proton index create drive has downloaded them. Elsewhere - a computer, a share, a link - it matches names alone, and says so.
PATH is in your own files. –computer REF lists inside a computer instead, –shared REF inside something somebody shared with you, and –link URL inside a public link somebody sent you. In the last two, / is the item itself.
proton drive items list [PATH]proton drive items listproton drive items list /Documentsproton drive items list /Notes --keyword 'parking permit' --recursiveproton drive items list / --computer 'Work laptop'proton drive items list / --shared Projectproton drive items list / --link 'https://drive.proton.me/urls/7X2K9M3N1P#kQ81mDx4T9wL'| Flag | Description |
|---|---|
--computer string |
Work inside this computer’s files, by name or ID |
--desc |
Reverse the order |
--keyword string |
Match text in the name, and in a file’s contents once a drive index exists |
--larger-than string |
Match files above SIZE (e.g. 100MB, 2GB) |
--limit int |
How many items per page; 0 for all of them (default 50) |
--link string |
Work inside a public link somebody sent you, by URL |
--link-password-file string |
Read the public link’s password from a file, or - for stdin |
--newer-than string |
Match files newer than DURATION |
--older-than string |
Match files older than DURATION (e.g. 30d, 2w, 1h) |
--page int |
Which page of results, counting from zero |
--pattern string |
Match names against a shell glob, e.g. *.tmp |
--recursive |
Descend into subfolders when filtering |
--shared string |
Work inside an item shared with you, by name or ID |
--smaller-than string |
Match files below SIZE |
--sort string |
Order by: name, size, modified (default name) |
Move files or folders into another folder.
proton drive items move [PATH...]proton drive items move /Documents/report.pdf --into /Archiveproton drive items move --pattern '*.log' --scope /Build --recursive --into /Archive| Flag | Description |
|---|---|
--all |
Act on everything in scope, rather than a subset |
--computer string |
Work inside this computer’s files, by name or ID |
--into string |
Destination folder |
--keyword string |
Match text in the name, and in a file’s contents once a drive index exists |
--larger-than string |
Match files above SIZE (e.g. 100MB, 2GB) |
--limit int |
Most items to affect; 0 for no cap (default 150) |
--newer-than string |
Match files newer than DURATION |
--older-than string |
Match files older than DURATION (e.g. 30d, 2w, 1h) |
--pattern string |
Match names against a shell glob, e.g. *.tmp |
--recursive |
Descend into subfolders when filtering |
--scope string |
Look only inside this folder (default: the whole drive) |
--shared string |
Work inside an item shared with you, by name or ID |
--smaller-than string |
Match files below SIZE |
revisions
Section titled “revisions”Earlier versions of a file.
Uploading over a file with --if-exists replace keeps what was there as a revision. You can read any revision back, restore it, or delete it.
Holds abuse, delete, download, list and restore.
revisions abuse
Section titled “revisions abuse”Report an earlier version of a shared file to Proton.
PATH is inside –shared REF, something somebody shared with you. Proton receives the key to the whole of what was shared, not only this version. Copyright and stolen-data reports need –message and –email. Nothing withdraws a report.
proton drive items revisions abuse PATH REVISION_REFproton drive items revisions abuse /report.pdf 5bH2mQxK --shared Project --category malware --good-faith| Flag | Description |
|---|---|
--category string |
What the report is about: spam, copyright, child-abuse, non-consensual-intimate, stolen-data, malware, other |
--email string |
Where Proton can reach you about the report; required for copyright and stolen-data |
--good-faith |
Confirm, in good faith, that what the report says is correct and complete |
--message string |
What Proton should know; required for copyright and stolen-data |
--shared string |
Work inside an item shared with you, by name or ID |
revisions delete
Section titled “revisions delete”Delete an earlier version permanently.
proton drive items revisions delete PATH REVISION_REFproton drive items revisions delete /Documents/report.pdf 5bH2mQxK| Flag | Description |
|---|---|
--computer string |
Work inside this computer’s files, by name or ID |
--shared string |
Work inside an item shared with you, by name or ID |
revisions download
Section titled “revisions download”Download an earlier version of a file.
The file itself is not changed. To put an old version back in place, use revisions restore.
proton drive items revisions download PATH REVISION_REFproton drive items revisions download /Documents/report.pdf 5bH2mQxK --dest-dir .| Flag | Description |
|---|---|
--computer string |
Work inside this computer’s files, by name or ID |
--dest string |
Write to this path, or - for stdout |
--dest-dir string |
Write into this directory, keeping each item’s own name |
--force |
Overwrite a file that already exists |
--shared string |
Work inside an item shared with you, by name or ID |
revisions list
Section titled “revisions list”List a file’s earlier versions.
proton drive items revisions list PATHproton drive items revisions list /Documents/report.pdf| Flag | Description |
|---|---|
--computer string |
Work inside this computer’s files, by name or ID |
--shared string |
Work inside an item shared with you, by name or ID |
revisions restore
Section titled “revisions restore”Restore a file to an earlier version.
proton drive items revisions restore PATH REVISION_REFproton drive items revisions restore /Documents/report.pdf 5bH2mQxK| Flag | Description |
|---|---|
--computer string |
Work inside this computer’s files, by name or ID |
--shared string |
Work inside an item shared with you, by name or ID |
The people you share a file or folder with.
Holds add, confirm, get, remove, resend and update.
share add
Section titled “share add”Invite someone to a file or folder.
EMAIL may be an address outside Proton. Proton emails them an invitation to create an account, and nothing reaches them until they have one and you run share confirm.
proton drive items share add PATH EMAILproton drive items share add /Documents jane@example.comproton drive items share add /Documents jane@example.com --access editor --message 'Have a look'| Flag | Description |
|---|---|
--access string |
What they may do with it: viewer, editor (default viewer) |
--computer string |
Work inside this computer’s files, by name or ID |
--message string |
Note to include in the invitation email |
--shared string |
Work inside an item shared with you, by name or ID |
share confirm
Section titled “share confirm”Let somebody in once they join Proton.
Use it for an address that had no Proton account when you invited it. It is refused until the account exists, and share get says who is ready. Afterwards they hold an ordinary invitation, which they still have to accept.
proton drive items share confirm PATH EMAILproton drive items share confirm /Documents jane@example.com| Flag | Description |
|---|---|
--computer string |
Work inside this computer’s files, by name or ID |
--shared string |
Work inside an item shared with you, by name or ID |
share get
Section titled “share get”Show how a file or folder is shared.
proton drive items share get PATHproton drive items share get /Documents/report.pdf| Flag | Description |
|---|---|
--computer string |
Work inside this computer’s files, by name or ID |
--shared string |
Work inside an item shared with you, by name or ID |
share remove
Section titled “share remove”Revoke someone’s access, or cancel their invitation.
proton drive items share remove PATH EMAILproton drive items share remove /Documents jane@example.com| Flag | Description |
|---|---|
--computer string |
Work inside this computer’s files, by name or ID |
--shared string |
Work inside an item shared with you, by name or ID |
share resend
Section titled “share resend”Send an unanswered invitation again.
proton drive items share resend PATH EMAILproton drive items share resend /Reports jane@proton.me| Flag | Description |
|---|---|
--computer string |
Work inside this computer’s files, by name or ID |
--shared string |
Work inside an item shared with you, by name or ID |
share update
Section titled “share update”Change what somebody may do with a file or folder.
Name them by address. It works whether they have accepted the share or still have it pending.
proton drive items share update PATH EMAILproton drive items share update /Reports jane@proton.me --access editorproton drive items share update /Reports jane@proton.me --access viewer| Flag | Description |
|---|---|
--access string |
What they may do with it: viewer, editor (default viewer) |
--computer string |
Work inside this computer’s files, by name or ID |
--shared string |
Work inside an item shared with you, by name or ID |
Move files or folders to the trash.
A public link has no trash. What you uploaded into one is removed with delete.
proton drive items trash [PATH...]proton drive items trash /Documents/report.pdfproton drive items trash --pattern '*.tmp' --scope /Build --recursiveproton drive items trash --older-than 1y --scope /Downloads --dry-run| Flag | Description |
|---|---|
--all |
Act on everything in scope, rather than a subset |
--computer string |
Work inside this computer’s files, by name or ID |
--keyword string |
Match text in the name, and in a file’s contents once a drive index exists |
--larger-than string |
Match files above SIZE (e.g. 100MB, 2GB) |
--limit int |
Most items to affect; 0 for no cap (default 150) |
--newer-than string |
Match files newer than DURATION |
--older-than string |
Match files older than DURATION (e.g. 30d, 2w, 1h) |
--pattern string |
Match names against a shell glob, e.g. *.tmp |
--recursive |
Descend into subfolders when filtering |
--scope string |
Look only inside this folder (default: the whole drive) |
--shared string |
Work inside an item shared with you, by name or ID |
--smaller-than string |
Match files below SIZE |
update
Section titled “update”Rename a file or folder.
Renaming is update --name; there is no rename verb. To put something somewhere else, use move.
PATH names something inside a tree, never the tree itself: to rename a computer, use computers update.
PATH is in your own files. –computer REF renames inside a computer instead, –shared REF inside something somebody shared with you, and –link URL inside a public link. In a link, you can rename only what you uploaded yourself, signed in, within the last hour.
proton drive items update PATHproton drive items update /Documents/report.pdf --name summary.pdfproton drive items update /photo.jpg --name holiday.jpg --link 'https://drive.proton.me/urls/7X2K9M3N1P#kQ81mDx4T9wL'| Flag | Description |
|---|---|
--computer string |
Work inside this computer’s files, by name or ID |
--link string |
Work inside a public link somebody sent you, by URL |
--link-password-file string |
Read the public link’s password from a file, or - for stdin |
--name string |
New name, without a path |
--shared string |
Work inside an item shared with you, by name or ID |
upload
Section titled “upload”Upload a file or directory.
A name already taken is refused. –if-exists answers instead:
replace a new revision, keeping the file’s history rename keep both, numbering the one being uploaded skip leave what is there alone
With –recursive that answer is about the folder the tree lands in.
SRC of - reads standard input, and then DEST has to name the file.
DEST is in your own files. –computer REF uploads into a computer instead, –shared REF into something somebody shared with you, and –link URL into a public link. In the last two, / is the item itself. A share or a link has to allow editing, and a link takes no new revisions: –if-exists replace is refused there.
proton drive items upload SRC [DEST]proton drive items upload ./report.pdf /Documentsproton drive items upload --recursive ./project /Backupproton drive items upload --if-exists replace ./report.pdf /Documentsproton drive items upload ./photo.jpg / --link 'https://drive.proton.me/urls/7X2K9M3N1P#kQ81mDx4T9wL'pg_dump mydb | gzip | proton drive items upload - /Backups/db.sql.gz| Flag | Description |
|---|---|
--computer string |
Work inside this computer’s files, by name or ID |
--if-exists string |
What to do when the folder already has that name: rename, replace, skip |
--link string |
Work inside a public link somebody sent you, by URL |
--link-password-file string |
Read the public link’s password from a file, or - for stdin |
--recursive |
Upload a directory and everything under it |
--shared string |
Work inside an item shared with you, by name or ID |
Every command also takes the flags that work everywhere.