8.6 KiB
PC Directory Structure
Thank you for visiting! If you are viewing this repo on GitHub or GitLab, please note that this is just a mirror. Please visit the originating repo for any comments, issues, pull requests, etc. You can sign in with your GitHub or GitLab account via Oauth2.
I ascribe to the PARA Method for organizing my to-do and personal knowledge management / second brain systems. A deep dive on how all of that works is out of the scope of this repo (if I ever write a blog post on it, I will link that here). But the short of it regarding how it applies here is that you sort everything into 4, and only 4, root directories in order of actionability: "Projects", "Areas", "Resources", and "Archives". And you only go one subdirectory deep within thos. As you will see below, I've expanded on that when it comes to my entire working file structure on my computers. I've aded "Inbox", User Directories", "Programs", and "DevMin" (my personal term for dev/git/admin type work on my homelab). And I also am not afraid to have as many subdirectories as necessary.
I've designed this system to be as portable as possible from one system to another, and from Linux to Windows. You could just about copy and paste the second brain root directory from any one to any other. Update a few symlinks if you're using them. And then point the system's user directories to their new locations, as appropriate.
My primary reason for uploading this here is to give myself an easy place to refer to it. But I figured I might as well make it public for others. I doubt anyone will use it exactly as I have it written down here, but hopefully you can find inspiration from it. As I update, I will move the now out of date versions to the prior-versions.md
file and replace them with the new ones here in the README.md
to keep the files in this repo at a minimum.
Legend
Legend
- root-directory-name >> description of directory
- dir-with-explanation >> description of directory
Explanation
- symlink-source >> description of directory
symlinked to "path/to/where/symlink/is/sent"
- symlink-dest >> description of directory
symlink of "path/to/where/symlink/is/from" Further explanation
- some-dir >> description of directory
- ${PLACE_HOLDER_FOR_SUBDIRS}
- ./file-name >> description of file
- dir-with-explanation >> description of directory
Linux Structure for v1.0.0
- file-structure-root >> the root directory for everything that follows
Name this directory how you like, and place it wherever you please. Tho I recommend your $HOME directory.
- 00-inbox >> default Desktop directory
- downloads >> default Downloads directory
- scans >> for printer/scanner to upload to
- screenshots >> for screenshot util to upload to
- tmp >> for "RAM" work
- 10-projects >> "P" in PARA
- ${PROJECT-DIRECTORIES}
- 20-areas >> 1st "A" in PARA
- ${AREA-DIRECTORIES}
- 30-resources >> "R" in PARA
- 40-archives >> 2nd "A" in PARA
- filing-cabinet >> for documents you would put in a physical filing cabinet
symlinked to "$HOME/50-user-dirs/documents/"
- manuals >> for storing home/office manuals
- glacial >> for long term storage
symlinked to "$HOME/50-user-dirs/documents/"
CD to where the directories/files to be archived are, and archive thusly:tar cf ${ARCHIVE_NAME}.tar.xz \ --use-compress-program='xz -9v' \ /path/to/glacial/${DIR_OR_FILE_TO_ARCHIVE}
- filing-cabinet >> for documents you would put in a physical filing cabinet
- 50-user-dirs user/profile directories
- audiobooks >> self-explanatory
- bookmarks >> symlinks to directories & files deep in the OS file system
- documents >> default Documents directory
- filing-cabinet >> for documents you would put in a physical filing cabinet
symlink of "$HOME/40-archives/filing-cabinet"
- glacial >> for long term storage
symlink of "$HOME/40-archives/glacial"
- obsidian-vaults >> place Obsidian.md vaults here
- ${VAULT-DIRECTORIES}
- templates >> default Templates directory
- filing-cabinet >> for documents you would put in a physical filing cabinet
- ebooks >> self-explanatory
- images >> default Pictures directory
- music >> default Music directory
- shares >> a directory to place shared directories in
- cloud-shares >> a directory to place cloud share directories in
- ${CLOUD-SHARE-DIRECTORIES}
- network-shares >> to "co-locate" your network shares with other shares
symlink of "/mnt"
- p2p-shares >> a directory to place peer to peer shared directories in
- ${P2P-SHARE-DIRECTORIES}
- public-directory >> default Public directory
- cloud-shares >> a directory to place cloud share directories in
- videos >> default Videos directory
- 60-programs >> portable apps and the like
- 70-devmin >> to do any dev/git/admin work out of
- repos >> for git/svc/etc repos
- ${VERSION-CONTROL-SYSTEM-DIRECTORIES}
- ${PROJECT-DIRECTORIES}
- ${VERSION-CONTROL-SYSTEM-DIRECTORIES}
- scripts >> place scripts in here and either add to path or copy script files from here to a dir in path
- vsc-workspaces >> place VSCod[e|ium] workspace files in here
- ./scratchpad.md >> a junk file use as a scratchpad
- repos >> for git/svc/etc repos
- 00-inbox >> default Desktop directory
Note: To modify the default user directories on Linux, edit the user-dirs.dirs
file, often located in $HOME/.config/
. You cannot add directories to the config file, but you can edit the paths of the existing ones. They must be relative to $HOME
and changes will take effect after relogging.
Windows Structure for v1.0.0
- file-structure-root >> the root directory for everything that follows
Name this directory how you like, and place it wherever you please. Tho I recommend your $HOME directory.
- 00-inbox >> default Desktop directory
- downloads >> default Downloads directory
- scans >> for printer/scanner to upload to
- screenshots >> for screenshot util to upload to
- tmp >> for "RAM" work
- 10-projects >> "P" in PARA
- ${PROJECT-DIRECTORIES}
- 20-areas >> 1st "A" in PARA
- ${AREA-DIRECTORIES}
- 30-resources >> "R" in PARA
- 40-archives >> 2nd "A" in PARA
- filing-cabinet >> for documents you would put in a physical filing cabinet
symlinked to "$HOME/50-user-dirs/documents/"
- manuals >> for storing home/office manuals
- glacial >> for long term storage
symlinked to "$HOME/50-user-dirs/documents/"
Archive directories/files using 7zip. First "Add to archive..." as a .tar, then again as an .xz with Ultra Compression Level. Then move the archive here.
- filing-cabinet >> for documents you would put in a physical filing cabinet
- 50-user-dirs user/profile directories
- audiobooks >> self-explanatory
- bookmarks >> symlinks to directories & files deep in the OS file system
- documents >> default Documents directory
- filing-cabinet >> for documents you would put in a physical filing cabinet
symlink of "$HOME/40-archives/filing-cabinet"
- glacial >> for long term storage
symlink of "$HOME/40-archives/glacial"
- obsidian-vaults >> place Obsidian.md vaults here
- ${VAULT-DIRECTORIES}
- templates >> simply here for parity between Linux & Windows setups
- filing-cabinet >> for documents you would put in a physical filing cabinet
- ebooks >> self-explanatory
- images >> default Pictures directory
- music >> default Music directory
- shares >> a directory to place shared directories in
- cloud-shares >> a directory to place cloud share directories in
- ${CLOUD-SHARE-DIRECTORIES}
- network-shares >> to "co-locate" your network shares with other shares
need to verify method of showing those here
- p2p-shares >> a directory to place peer to peer shared directories in
- ${P2P-SHARE-DIRECTORIES}
- public-directory >> simply here for parity between Linux & Windows setups
- cloud-shares >> a directory to place cloud share directories in
- videos >> default Videos directory
- 60-programs >> portable apps and the like
- 70-devmin >> to do any dev/git/admin work out of
- repos >> for git/svc/etc repos
- ${VERSION-CONTROL-SYSTEM-DIRECTORIES}
- ${PROJECT-DIRECTORIES}
- ${VERSION-CONTROL-SYSTEM-DIRECTORIES}
- scripts >> place scripts in here and either add to path or copy script files from here to a dir in path
- vsc-workspaces >> place VSCod[e|ium] workspace files in here
- ./scratchpad.md >> a junk file use as a scratchpad
- repos >> for git/svc/etc repos
- 00-inbox >> default Desktop directory
Note: To modify the default user directories on Windows, rename them first, then move them in a top down order (i.e. move Downloads into Desktop after having already moved Desktop) to avoid any weirdness. Rename using these directions.