Skip to content

AndreaBonn/download-organizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

6 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ‡ฌ๐Ÿ‡ง English | ๐Ÿ‡ฎ๐Ÿ‡น Italiano | ๐Ÿ”’ Security | ๐Ÿ“„ License


Download Organizer

Automatic Download folder organizer for Linux, macOS and Windows.

The script runs in the background every 3 hours and sorts downloaded files into organized subfolders by type, with no manual intervention needed.


How it works

Every 3 hours the script automatically performs these operations:

  1. Takes new files from the Download folder and puts them in 001__Recent/Today/
  2. After 1 day, moves them to 001__Recent/This-Week/
  3. After 7 days, sorts them into the right folder based on type (PDF, images, video, etc.)
  4. After 30 days, deletes unknown files left in 008__Temporary/

In practice: you have 7 days to find recent files in 001__Recent/, then they are automatically archived into the correct category.


Folder structure

After installation, the Download folder is organized like this:

Downloads/
โ”œโ”€โ”€ 001__Recent/
โ”‚   โ”œโ”€โ”€ Today/                     โ† files downloaded in the last 24 hours
โ”‚   โ””โ”€โ”€ This-Week/                 โ† files from 1 to 7 days old
โ”‚
โ”œโ”€โ”€ 002__Data/
โ”‚   โ”œโ”€โ”€ CSV/                       โ† .csv, .tsv
โ”‚   โ”œโ”€โ”€ Excel/                     โ† .xlsx, .xls, .ods
โ”‚   โ”œโ”€โ”€ JSON/                      โ† .jsonl, .ndjson
โ”‚   โ”œโ”€โ”€ Database/                  โ† .sql, .db, .sqlite
โ”‚   โ”œโ”€โ”€ Parquet/                   โ† .parquet, .feather, .arrow
โ”‚   โ””โ”€โ”€ Other-Formats/             โ† .xml, .avro, .hdf5
โ”‚
โ”œโ”€โ”€ 003__Documents/
โ”‚   โ”œโ”€โ”€ PDF/                       โ† .pdf
โ”‚   โ”œโ”€โ”€ Word/                      โ† .doc, .docx, .odt
โ”‚   โ”œโ”€โ”€ Presentations/             โ† .ppt, .pptx, .odp, .key
โ”‚   โ”œโ”€โ”€ Text/                      โ† .txt, .md
โ”‚   โ””โ”€โ”€ Ebook/                     โ† .epub, .mobi
โ”‚
โ”œโ”€โ”€ 004__Media/
โ”‚   โ”œโ”€โ”€ Images/                    โ† .jpg, .png, .gif, .svg, .webp, .heic
โ”‚   โ”œโ”€โ”€ Video/                     โ† .mp4, .avi, .mkv, .mov
โ”‚   โ”œโ”€โ”€ Audio/                     โ† .mp3, .wav, .flac, .ogg
โ”‚   โ””โ”€โ”€ Diagrams/                  โ† .drawio, .puml
โ”‚
โ”œโ”€โ”€ 005__Development/
โ”‚   โ”œโ”€โ”€ Code/                      โ† .py, .js, .ts, .java, .cpp, .swift
โ”‚   โ”œโ”€โ”€ Notebooks/                 โ† .ipynb
โ”‚   โ”œโ”€โ”€ Config/                    โ† .json, .yaml, .toml, .env
โ”‚   โ”œโ”€โ”€ Repository/                โ† .zip/.tar.gz with names like "v1.0", "main"
โ”‚   โ””โ”€โ”€ Package/                   โ† .whl, .jar, .deb, .rpm
โ”‚
โ”œโ”€โ”€ 006__Software/
โ”‚   โ”œโ”€โ”€ Installers/                โ† OS-specific formats (see below)
โ”‚   โ”œโ”€โ”€ Archives/                  โ† .zip, .rar, .7z, .tar.gz
โ”‚   โ”œโ”€โ”€ Docker/                    โ† Dockerfile, docker-compose.yml
โ”‚   โ””โ”€โ”€ Scripts/                   โ† .sh, .bat, .ps1
โ”‚
โ”œโ”€โ”€ 007__Work/
โ”‚   โ”œโ”€โ”€ Invoices/                  โ† files with "invoice" or "receipt" in the name
โ”‚   โ”œโ”€โ”€ Contracts/                 โ† files with "contract" or "agreement" in the name
โ”‚   โ”œโ”€โ”€ Quotes/                    โ† files with "quote" or "estimate" in the name
โ”‚   โ””โ”€โ”€ Other-Documents/
โ”‚
โ””โ”€โ”€ 008__Temporary/                โ† files with unknown extension
                                      (automatically deleted after 30 days)

Folders are numbered (001__, 002__, etc.) to always appear in the same order in the file manager.


Key features

  • Multi-language support: folder names, messages and recognition keywords adapt to the language chosen during installation (Italiano, English, Espaรฑol, Franรงais, Deutsch, Portuguรชs)
  • No files are overwritten: if a file with the same name already exists, a numeric suffix is added (document_1.pdf, document_2.pdf, etc.)
  • In-progress downloads are not touched: .part, .crdownload and .download files are ignored
  • Work documents recognized automatically: invoices, contracts and quotes are identified by filename and sorted into 007__Work/ (keywords change based on the chosen language)
  • Test mode (DRY RUN): you can see what the script would do without moving anything
  • Detailed log: every operation is recorded in a log file for reference
  • Folder migration: if you change language by reinstalling, existing folders are automatically renamed

Installation

Choose the version for your operating system

Each folder contains the scripts and a step-by-step guide designed for non-technical users.

Operating system Folder Main script Guide
Linux (Ubuntu, Fedora, Debian, Mint, etc.) linux/ organize_downloads.sh (bash) linux/README.md
macOS (10.15 Catalina or later) macOS/ organize_downloads.sh (bash) macOS/README.md
Windows (10 and 11) windows/ Organize-Downloads.ps1 (PowerShell) windows/README.md

Quick procedure

  1. Download the files from the folder corresponding to your operating system
  2. Open the guide (README.md) inside that folder and follow the step-by-step instructions
  3. Run the installation script (install.sh on Linux/macOS, Install-Windows.ps1 on Windows)
  4. Choose the language when prompted (Italiano, English, Espaรฑol, Franรงais, Deutsch, Portuguรชs)
  5. Confirm automatic activation when prompted

Installation takes a few minutes. Afterwards, the script runs on its own in the background with no further action needed.

Supported languages

Code Language Folder example
it Italiano (default) 001__Recenti/Oggi
en English 001__Recent/Today
es Espaรฑol 001__Recientes/Hoy
fr Franรงais 001__Recents/Aujourd-hui
de Deutsch 001__Neueste/Heute
pt Portuguรชs 001__Recentes/Hoje

To change language after installation, simply re-run the installation script and choose a new language. Existing folders are automatically renamed.


Differences between versions

The three versions are functionally identical: same folder structure, same categorization logic, same behavior. The differences only concern OS-specific adaptation.

Linux

  • Language: Bash
  • Automation: cron job (crontab)
  • Recognized installers: .appimage, .deb, .snap, .flatpak
  • Default path: $HOME/Download (change if your folder has a different name, e.g. Scaricati or Downloads)

macOS

  • Language: Bash (compatible with bash 3.2+)
  • Automation: cron job (crontab)
  • Recognized installers: .dmg, .pkg, .app
  • Default path: $HOME/Downloads
  • Important note: you need to grant Full Disk Access to cron in System Settings, otherwise the script won't be able to access the Download folder when running automatically. The guide explains how.

Windows

  • Language: PowerShell
  • Automation: Task Scheduler
  • Recognized installers: .exe, .msi, .appx, .msix
  • Default path: $env:USERPROFILE\Downloads
  • Note: you may need to enable PowerShell script execution. The guide explains how.

Frequently asked questions

Are files deleted? No. Files are only moved into subfolders. The only exception is the 008__Temporary/ folder: files with unknown extensions that remain there for over 30 days are deleted.

Can I manually move files between folders? Yes, you can move files as you like. The script doesn't touch files that are already inside the subfolders.

Does the script slow down the computer? No. It runs for a few seconds every 3 hours and doesn't consume resources.

Can I change the execution frequency? Yes. Each specific guide explains how to modify the interval (every hour, every 6 hours, once a day, etc.).

Can I use it on multiple operating systems at the same time? Yes. Each version is independent and can be installed separately on each computer.


Repository contents

download_organizer/
โ”œโ”€โ”€ README.md                        โ† general guide (English)
โ”œโ”€โ”€ README.it.md                     โ† general guide (Italian)
โ”œโ”€โ”€ LICENSE.md                       โ† MIT license
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ linux/
โ”‚   โ”œโ”€โ”€ organize_downloads.sh        โ† main script (bash)
โ”‚   โ”œโ”€โ”€ install.sh                   โ† automatic installation
โ”‚   โ”œโ”€โ”€ lang/                        โ† language files (it, en, es, fr, de, pt)
โ”‚   โ”œโ”€โ”€ README.md                    โ† step-by-step guide for Linux (English)
โ”‚   โ””โ”€โ”€ README.it.md                 โ† step-by-step guide for Linux (Italian)
โ”œโ”€โ”€ macOS/
โ”‚   โ”œโ”€โ”€ organize_downloads.sh        โ† main script (bash)
โ”‚   โ”œโ”€โ”€ install.sh                   โ† automatic installation
โ”‚   โ”œโ”€โ”€ lang/                        โ† language files (it, en, es, fr, de, pt)
โ”‚   โ”œโ”€โ”€ README.md                    โ† step-by-step guide for macOS (English)
โ”‚   โ””โ”€โ”€ README.it.md                 โ† step-by-step guide for macOS (Italian)
โ””โ”€โ”€ windows/
    โ”œโ”€โ”€ Organize-Downloads.ps1       โ† main script (PowerShell)
    โ”œโ”€โ”€ Install-Windows.ps1          โ† automatic installation
    โ”œโ”€โ”€ lang/                        โ† language files (it, en, es, fr, de, pt)
    โ”œโ”€โ”€ README.md                    โ† step-by-step guide for Windows (English)
    โ””โ”€โ”€ README.it.md                 โ† step-by-step guide for Windows (Italian)

About

Automatically organizes your Downloads folder on Linux, macOS, and Windows. Every 3 hours, downloaded files are sorted into subfolders by type (documents, images, data, code, etc.). Recent files remain easily accessible for 7 days, then are archived. No files are overwritten or lost. Setup wizard in just a few minutes.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Contributors