{"id":31955,"date":"2019-02-05T16:56:47","date_gmt":"2019-02-05T14:56:47","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=31955"},"modified":"2019-02-05T16:56:53","modified_gmt":"2019-02-05T14:56:53","slug":"dotfile-madness","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2019\/02\/05\/dotfile-madness\/","title":{"rendered":"Dotfile madness"},"content":{"rendered":"<!-- google_ad_section_start -->\n\n<p class=\"wp-block-paragraph\">&#8220;<a href=\"https:\/\/0x46.net\/thoughts\/2019\/02\/01\/dotfile-madness\/\">Dotfile madness<\/a>&#8221; is an excellent look at the problem of hidden data and configuration files that seem to be multiplying lately in the users&#8217; home directories:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>We are no longer in control of our home directories.<br>My own home directory contains 25 ordinary files and 144 hidden files. The dotfiles contain data that doesn&#8217;t belong to me: it belongs to the programmers whose programs decided to hijack the primary location designed as a storage for my personal files. I can&#8217;t place those dotfiles anywhere else and they will appear again if I try to delete them. All I can do is sit here knowing that in the darkness, behind the scenes, they are there. Waiting in silence. Some of those programmers decided to additionally place some normal files and directories in the same place. Those are clearly visible every time I execute\u00a0<code>ls<\/code>\u00a0in my home directory.\u00a0<\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">While there is no easy centralized solution to this problem, as each application&#8217;s developer decides for himself, the article proposes a better way of doing things, reminding us about the <a href=\"https:\/\/specifications.freedesktop.org\/basedir-spec\/basedir-spec-latest.html\">XDG Base Directory Specification<\/a>.  This spec allows for a much finer control of where things go via the <em>XDG_*<\/em> environment variables.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nice one!<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>&#8220;Dotfile madness&#8221; is an excellent look at the problem of hidden data and configuration files that seem to be multiplying lately in the users&#8217; home directories: We are no longer in control of our home directories.My own home directory contains 25 ordinary files and 144 hidden files. The dotfiles contain data that doesn&#8217;t belong to &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2019\/02\/05\/dotfile-madness\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Dotfile madness<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Dotfile madness #CLI #UNIX #Linux #standards #BestPractices","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,6,18,133,62],"tags":[3069,1960,1216,253],"keyring_services":[],"class_list":["post-31955","post","type-post","status-publish","format-standard","hentry","category-general","category-linux","category-programming","category-sysadmin","category-technology","tag-best-practices","tag-command-line","tag-standards","tag-unix"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":29221,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/15\/managing-dotfiles-with-rcm\/","url_meta":{"origin":31955,"position":0},"title":"Managing dotfiles with rcm","author":"Leonid Mamchenkov","date":"January 15, 2019","format":false,"excerpt":"These days it is a common practices to manage, version, and share configuration files for command line tools (bash, vim, etc) via a GitHub repository. There are plenty of open repositories to study and borrow things from, as well as the tools and scripts to help one with setting things\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/01\/dotfiles.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/01\/dotfiles.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/01\/dotfiles.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/01\/dotfiles.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":14756,"url":"https:\/\/mamchenkov.net\/wordpress\/2011\/04\/14\/day-in-brief\/","url_meta":{"origin":31955,"position":1},"title":"Day in brief","author":"Leonid Mamchenkov","date":"April 14, 2011","format":false,"excerpt":"Shared: 3 \u043d\u043e\u0432\u044b\u0445 \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0441\u0442\u0432\u0430 \u041a\u0438\u043f\u0440\u0430 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 http:\/\/bit.ly\/hnzFZo # GitHub: mamchenkov created branch master at mamchenkov\/dotfiles http:\/\/bit.ly\/ewFIQE # GitHub: mamchenkov created repository dotfiles http:\/\/bit.ly\/h2OoDl # GitHub: mamchenkov pushed to master at mamchenkov\/vimfiles http:\/\/bit.ly\/i797rc # GitHub: mamchenkov created branch master at mamchenkov\/vimfiles http:\/\/bit.ly\/ihPD65 # GitHub: mamchenkov created repository vimfiles http:\/\/bit.ly\/eURS7S #\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":25986,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/01\/first-attempt-at-ansible\/","url_meta":{"origin":31955,"position":2},"title":"First attempt at Ansible","author":"Leonid Mamchenkov","date":"April 1, 2016","format":false,"excerpt":"After all the reading about Ansible that I've done yesterday, I woke up today with a strong will to try it out. \u00a0Running a few \"hello world\" examples wasn't illustrative enough, so I decided to migrate my dotfiles repository from Puppet to Ansible. \u00a0This would provide just enough complexity to\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27150,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/18\/dotfiles-your-unofficial-guide-to-dotfiles-on-github\/","url_meta":{"origin":31955,"position":3},"title":"dotfiles &#8211; your unofficial guide to dotfiles on GitHub","author":"Leonid Mamchenkov","date":"December 18, 2016","format":false,"excerpt":"Warning: you will lose a lot of sleep if you follow the link below. :) No matter how well you know Vim, bash, git, and a whole slew of other command line tools, I promise you, you'll find something new, something you had no idea existed, something that will help\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/12\/dotfiles-500x339.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27398,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/03\/08\/how-to-use-git-to-manage-your-user-configuration-files\/","url_meta":{"origin":31955,"position":4},"title":"How To Use Git to Manage your User Configuration Files","author":"Leonid Mamchenkov","date":"March 8, 2017","format":false,"excerpt":"There is probably a gadzillion different ways that you can manage and synchronize you configuration files (aka dotfiles) between different Linux\/UNIX boxes - anything from custom symlink scripts, all the way to configuration management tools like Puppet and Ansible. \u00a0Here are a few options to look at if you are\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":9038,"url":"https:\/\/mamchenkov.net\/wordpress\/2005\/06\/03\/recursively-adding-files-and-directories-in-gnu-arch\/","url_meta":{"origin":31955,"position":5},"title":"Recursively adding files and directories in Gnu Arch","author":"Leonid Mamchenkov","date":"June 3, 2005","format":false,"excerpt":"One of the little annoyances of Gnu Arch is that it does not add files and directories recursively. Not to worry, though. Here is a little shell script that can assist with that task: #!\/bin\/bash # Find all files and directories, skipping .\/{arch} for FILE in `find . -path '.\/{arch}'\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/31955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=31955"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/31955\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=31955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=31955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=31955"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=31955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}