137
submitted 1 week ago* (last edited 1 week ago) by underscores@lemmy.zip to c/linux@lemmy.ml

I realized I always make a source folder under home and then subfolders named after programming languages to organize projects but then I realized I somehow had my own convention for how to store my source code and I have no idea where I got it from

Then I thought. what about other Linux users ?

What sorts of conventions do you have that pertains to folder structure in Linux ?

top 50 comments
sorted by: hot top controversial new old
[-] Digit@lemmy.wtf 1 points 4 days ago* (last edited 4 days ago)

Uh-oh... I'm going to answer this. n_n

99% just dirs in ~/. ( Does making new dirs in /bedrock/strata count when manually adding strata? That'll be about all there is in the other 1%. )

  • ~/bin
  • ~/gittings
  • ~/gittings/Digit (where I keep my local copies of my own git repos)
  • ~/images
  • ~/images/scrots
  • ~/images/ all the different things like dsktpbckgrnds, charts, memes, photos, gifs, etc & EDITS where I save most GIMP file artwork
  • ~/sounds
  • ~/.fonts (if the system does not create this already... so I can put my big tiny font collection "dbtfc" of otb and ttf fonts I made, in there, and have them "just work").

Oh, and this one's a little fun:

  • ~/testdir in which i make a dir, a file, a media file, an executable, a fifo, a symlink, and a broken symlink, so I can ls that dir to see how everything looks in new themes.

And locations for my sshfs mounts and external drives (faster to type than putting them each in ~/mount or ~/media or ~/mnt).

  • ~/bb
  • ~/o
  • ~/m or ~/t as symlinks to ~/mozart and ~/tyson depending on if on tyson or mozart. (I name my thinkpads after famous people born on the same day it arrives in the post).

And then on bb external hd, loads of dirs, some notable ones

  • ./bkps
  • ./software
  • ./software/distros (where I store ISOs and system tarballs)
  • ./software/configs/ ; crypto/ ; doc/ ; games/ ; langs/ ; other/ ; virtuals/
  • ./cinema/
  • ./cinema/library (hiding the library in cinema, so I see it more often ;D)
  • ./cinema/_docu (for documentaries, lectures, interviews, etc)

And on the webserver

  • ~/web
  • ~/web/stuff
  • ~/stuff (symlink to ^, that I use like my own personal pastebin) (... ~/o/stuff, from local machine).
[-] erebion@news.erebion.eu 1 points 4 days ago

~/git

Everything else is managed by Ansible or synced via Synthing (except ~/Downloads).

[-] moopet@sh.itjust.works 7 points 6 days ago* (last edited 6 days ago)

~/tmp

~/temp

~/temper

~/tempest

~/misc

/mnt/other (symlinked)

[-] fum@lemmy.world 4 points 6 days ago

~/bin/ which I add to my $PATH

[-] Lettuceeatlettuce@lemmy.ml 4 points 6 days ago* (last edited 6 days ago)

~/Repos (For all the github and other code repositories I work in)

~/Scripts (All my random Bash scripts, sometimes for testing out stuff)

~/Junk (Mostly used for testing programs or small project components that aren't mature enough to have their own repo)

[-] northernlights@lemmy.today 2 points 6 days ago

$HOME/temp, $HOME/git, ln -s $HOME/git/scripts $HOME/scripts

[-] qjkxbmwvz@startrek.website 5 points 6 days ago

I'm a ~/tmp man myself.

[-] Renohren@lemmy.today 2 points 6 days ago* (last edited 6 days ago)

Separate folders in the download one. One for each app. And a separate /home/sync folder with the same app separation folders to safekeep the backups of android apps and DCIM folder.

[-] iamlyth@beehaw.org 2 points 6 days ago

~/nixos/ for my NixOS config ~/repos/ for git repos ~/audio/ for my sound library and recordings

[-] termaxima@slrpnk.net 2 points 6 days ago

Code goes in the Developer folder

(I got used to that name on macOS, where it is the "canonical" name for it, because it automatically gets a special icon)

[-] sem@piefed.blahaj.zone 1 points 5 days ago

I make an ~/all/ directory as a catchall for things that don't fit elsewhere, since ~ is used by so many automatic softwares and config files, I like having a place that only I'll write to.

I also make ~/bin for general use and ~/all/GitHub/ for software I install from GitHub.

[-] Chewt@beehaw.org 1 points 6 days ago* (last edited 6 days ago)

~/Scripts for any bash or python scripts
~/Gits for any repos I clone
~/Projects for any projects im working on (not organized by programming language, but I do have some dirs called zig, go, etc., for when im learning a new language and want to make some projects for learning purposes)

Most other files go into ~/Documents if they don’t have a home already, or don’t fit into the above directories

[-] Auth@lemmy.world 1 points 6 days ago

Public - for everything im seeding and sharing

Apps - for all app images

Games - for all lutris spam and random failed attempts at installing mods.

[-] taaz@lemmy.world 1 points 6 days ago

~/Projects which has everything I ever cloned or started. yes, it's getting kind of painful to backup :D

[-] owsei@programming.dev 1 points 6 days ago* (last edited 6 days ago)

~/code for code

~/dots for git-backed nix configs

~/.rt for projects compiled locally ("runtime")

~/Screencast for recordings of my screen

I also create a ~/.shrc.bash symlink that points to ~/dots/bash/bashrc that reats ~/dots/bash/*.bash and sources the files

~/.shenv.bash where I keep environment (computer) specific settings

[-] Theoriginalthon@lemmy.world 1 points 6 days ago

/datapool or whatever the array is called for zfs pools, I often do /mail on mail servers, and /www on web servers. Not sure why but it makes it super obvious what's going on when you login remotely

[-] Sxan@piefed.zip -1 points 6 days ago

I don't, on most machines, which are servers of some sort. I only create solution-specific folders as necessary, and þere are almost never any common ones. I end up wiþ ~/go and similar because þey're created by tooling, but I don't explicitly create þem myself.

For my PCs, I've been carrying forward my ${HOME} for over a decade. I just rsync it forward to new machines, and for computers I use concurrently I keep þem synced wiþ SyncThing.

[-] Ricaz@lemmy.dbzer0.com 33 points 1 week ago

My homedir is an infernal hellhole of junk accumulated over the past 15 years and I wouldn't have it any other way

[-] TriangleSpecialist@lemmy.world 16 points 1 week ago

I'd love to keep it clean but too many devs think $HOME is up for grabs, as long as they prepend their directory names with a dot (they think I'll never notice, but I notice, and I keep a list...)

[-] Ricaz@lemmy.dbzer0.com 9 points 1 week ago* (last edited 1 week ago)

Dafuq are you doing in other people's homes?

Sysadmins are all creeps, confirmed

load more comments (4 replies)
[-] CrabAndBroom@lemmy.ml 10 points 1 week ago

Mine used to be like that, but now my home folder is rehabilitated by turning ~/Documents into a hellhole of accumulated junk instead.

load more comments (4 replies)
[-] mbirth@lemmy.ml 31 points 1 week ago

My home folders on any OS have a Development folder (which conveniently sits right next to Documents and Downloads) and in that folder, I’ve also got subfolders per programming language that have the respective projects in them.

The other folder I usually have is SyncThing with whatever synced folders are relevant for that machine.

[-] AnarchistArtificer@slrpnk.net 2 points 6 days ago

Having a development folder is such a good idea that I feel silly for not thinking of it sooner. Thanks for the idea.

[-] anon_8675309@lemmy.world 17 points 1 week ago

Mine is dev. I avoid capitalizing folder names.

load more comments (2 replies)
[-] Dave@lemmy.nz 30 points 1 week ago

Multiple people in this topic say they organise in directories for different programming languages, something I have never considered and I find it to be an odd way of organising for some reason I can't explain.

Where do you put a project with a Javascript frontend and a Python backend?

load more comments (8 replies)
[-] QuarterSwede@lemmy.world 27 points 1 week ago

~/3D Objects

[-] KaChilde@sh.itjust.works 22 points 1 week ago* (last edited 1 week ago)

~/Homework (porn)

~/aaaaaaa (porn)

~/Stuff (memes, with a porn subfolder)

~/misc (work docs, study docs, forms, some porn)

[-] Holytimes@sh.itjust.works 9 points 6 days ago

What about the ~/Porn folder?!

[-] Sims@lemmy.ml 1 points 2 days ago* (last edited 2 days ago)

I could be wrong, but it seems he just mounted '/porn' directly as '/' ? Efficient, I guess.

..actually, there seem to room for more improvements; I'm not sure there's any need for an 'operating system' on the system - a small fap-app (tm) could likely handle all content on the system ? Work documents could be injected in to the fap-stream (c) when he needs to stop ? That would release many gb for even more fap-ability (c) ?

[-] xor@lemmy.blahaj.zone 11 points 6 days ago

That's for startup ideas

[-] aeternum@lemmy.blahaj.zone 1 points 6 days ago

So where do you store your porn?

[-] Evil_Shrubbery@thelemmy.club 15 points 1 week ago

At least two of these:
~/Stuff
~/Stuffs
~/Stuffz
~/Shits

load more comments (2 replies)
[-] skankhunt42@lemmy.ca 12 points 1 week ago

I have /home/username/username/ and I sym link important dirs (like Downloads) to my new home. I strongly dislike all the dot files and dirs cluttering up my home dir.

[-] RiderExMachina@lemmy.ml 9 points 1 week ago

Are you aware of the ‘xdg-user-dirs-update’ command that allows you to edit the ~/.config/user-dirs.dirs config file?

[-] skankhunt42@lemmy.ca 1 points 6 days ago

Huh, no, I had no idea that was there. Thank you.

load more comments (5 replies)
[-] homura1650@lemmy.world 12 points 1 week ago* (last edited 1 week ago)
  • /ram - tmpfs filesystem
  • ~/.local/bin - added to my path
  • ~/.local/software - any user-local program more complicated than a binary gets a directory here. Generally a binary would be symlinked to ~/.local/bin
  • ~/.local/venv - shared python venv to use for one liners and small scripts
  • ~/repo - local filesystem backed package repository for which the host system is configured to install from
  • ~/.local/repo - local filesystem backed package repository for which the host system is not configured to install from (used for mock, VMs, and external systems).
  • /overflow - Used to point to a large secondary hard drive (back when having a small ssd was the economical thing to do. Nowadays, it is just where my large directories go cause I can't be bothered to get used to a more sane setup
[-] SolarPunker@slrpnk.net 11 points 1 week ago
[-] BCsven@lemmy.ca 10 points 1 week ago

Hardware folder (synced via sync thing). All hardware PDFs, notes images etc get subfolders by manufacturer. It is helpful for keeping track of use manuals, firmware or config settings for each piece of hardware.

load more comments (3 replies)
[-] aesopjah@sh.itjust.works 9 points 1 week ago

~/proj
~/note
~/sync
~/docs (/book etc)
~/imgs ~/util ~/test ~/temp

[-] Baguette@lemmy.blahaj.zone 9 points 1 week ago* (last edited 1 week ago)

Archive

Archive archive

Archive_11_2025

I am not good at organizing

[-] bitwolf@sh.itjust.works 8 points 1 week ago* (last edited 1 week ago)

~/dev for code
~/work for things I don't want to do, like taxes

[-] Apparatus@programming.dev 8 points 1 week ago* (last edited 1 week ago)

I do similarly, but I use '~/Development' only because I accidentally fucked up my '/dev' dir once using '~/dev'

[-] bitwolf@sh.itjust.works 4 points 6 days ago

Ohh good point. Maybe I should switch to ~/code

load more comments (1 replies)
load more comments
view more: next ›
this post was submitted on 09 Dec 2025
137 points (97.9% liked)

Linux

57274 readers
1097 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS