<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Bash-Hacks</title><description>One useful bash one-liner every weekday, explained flag by flag.</description><link>https://bash-hacks.com/</link><language>en-us</language><item><title>See exactly what rsync will change before it changes anything</title><link>https://bash-hacks.com/2026/09/16/023-see-what-rsync-will-do-before-it-runs/</link><guid isPermaLink="true">https://bash-hacks.com/2026/09/16/023-see-what-rsync-will-do-before-it-runs/</guid><description>rsync -avni --delete site/ backup/</description><pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate><category>rsync</category><category>sync</category><category>backup</category><category>dry-run</category></item><item><title>Total a column grouped by another one in a single pass</title><link>https://bash-hacks.com/2026/09/15/022-total-a-column-grouped-by-another/</link><guid isPermaLink="true">https://bash-hacks.com/2026/09/15/022-total-a-column-grouped-by-another/</guid><description>awk &apos;{n[$7]++; bytes[$7]+=$10} END {for (u in n) printf &quot;%12.0f %6d %s\n&quot;, bytes[u], n[u], u}&apos; access.log | sort -rn | head</description><pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate><category>awk</category><category>logs</category><category>aggregation</category><category>arrays</category></item><item><title>Find the process that is quietly eating your memory</title><link>https://bash-hacks.com/2026/09/14/021-find-the-process-eating-your-memory/</link><guid isPermaLink="true">https://bash-hacks.com/2026/09/14/021-find-the-process-eating-your-memory/</guid><description>ps -eo pid,ppid,rss,etimes,pcpu,comm --sort=-rss | head -11</description><pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate><category>ps</category><category>memory</category><category>rss</category><category>debugging</category></item><item><title>Search a project without walking into node_modules</title><link>https://bash-hacks.com/2026/09/08/018-search-a-project-without-walking-into-node-modules/</link><guid isPermaLink="true">https://bash-hacks.com/2026/09/08/018-search-a-project-without-walking-into-node-modules/</guid><description>find . \( -name node_modules -o -name .git \) -prune -o -type f -name &apos;*.ts&apos; -print</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><category>find</category><category>prune</category><category>search</category></item><item><title>Find out which part of an HTTP request is actually slow</title><link>https://bash-hacks.com/2026/09/07/017-find-out-which-part-of-a-request-is-slow/</link><guid isPermaLink="true">https://bash-hacks.com/2026/09/07/017-find-out-which-part-of-a-request-is-slow/</guid><description>curl -sS -o /dev/null -w &quot;dns   %{time_namelookup}\ntcp   %{time_connect}\ntls   %{time_appconnect}\nttfb  %{time_starttransfer}\ntotal %{time_total}\n&quot; https://www.debian.org</description><pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate><category>curl</category><category>http</category><category>latency</category><category>debugging</category></item><item><title>Bring back the commits you lost to a bad reset</title><link>https://bash-hacks.com/2026/09/04/016-bring-back-commits-lost-to-a-bad-reset/</link><guid isPermaLink="true">https://bash-hacks.com/2026/09/04/016-bring-back-commits-lost-to-a-bad-reset/</guid><description>git reflog show --date=relative HEAD</description><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate><category>git-reflog</category><category>recovery</category><category>history</category></item><item><title>Compare the output of two commands without writing a temp file</title><link>https://bash-hacks.com/2026/09/03/015-compare-the-output-of-two-commands/</link><guid isPermaLink="true">https://bash-hacks.com/2026/09/03/015-compare-the-output-of-two-commands/</guid><description>diff &lt;(sort packages-web01.txt) &lt;(sort packages-web02.txt)</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>process-substitution</category><category>diff</category><category>comm</category></item><item><title>Turn a Unix timestamp into a readable date in any timezone</title><link>https://bash-hacks.com/2026/09/02/014-read-a-unix-timestamp-in-any-timezone/</link><guid isPermaLink="true">https://bash-hacks.com/2026/09/02/014-read-a-unix-timestamp-in-any-timezone/</guid><description>TZ=America/New_York date -d @1788373391 +&apos;%F %T %Z&apos;</description><pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate><category>date</category><category>timestamps</category><category>timezones</category></item><item><title>Reuse SSH connections instead of authenticating every time</title><link>https://bash-hacks.com/2026/09/01/013-reuse-ssh-connections-with-controlmaster/</link><guid isPermaLink="true">https://bash-hacks.com/2026/09/01/013-reuse-ssh-connections-with-controlmaster/</guid><description>ssh -o ControlMaster=auto -o ControlPath=~/.ssh/sockets/%r@%h-%p -o ControlPersist=600 devbox</description><pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate><category>ssh</category><category>multiplexing</category><category>performance</category></item><item><title>See what is inside a tarball without extracting it</title><link>https://bash-hacks.com/2026/08/31/012-see-whats-inside-a-tarball-without-extracting/</link><guid isPermaLink="true">https://bash-hacks.com/2026/08/31/012-see-whats-inside-a-tarball-without-extracting/</guid><description>tar -tzvf archive.tar.gz</description><pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate><category>tar</category><category>archives</category><category>inspection</category></item><item><title>Find out what a command actually is before you run it</title><link>https://bash-hacks.com/2026/08/28/011-find-out-what-a-command-actually-is/</link><guid isPermaLink="true">https://bash-hacks.com/2026/08/28/011-find-out-what-a-command-actually-is/</guid><description>type -a grep</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate><category>type</category><category>aliases</category><category>debugging</category></item><item><title>Check how much disk space is left on every mounted filesystem</title><link>https://bash-hacks.com/2026/08/27/010-check-how-much-disk-space-is-left/</link><guid isPermaLink="true">https://bash-hacks.com/2026/08/27/010-check-how-much-disk-space-is-left/</guid><description>df -h</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><category>df</category><category>disk</category><category>filesystems</category></item><item><title>Search your Git history for a deleted function or string</title><link>https://bash-hacks.com/2026/08/26/009-search-git-history-for-deleted-code/</link><guid isPermaLink="true">https://bash-hacks.com/2026/08/26/009-search-git-history-for-deleted-code/</guid><description>git log -S&quot;handleAuth&quot; --oneline --all</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate><category>git-log</category><category>history</category><category>search</category></item><item><title>Check where a domain name actually points</title><link>https://bash-hacks.com/2026/08/25/008-check-where-a-domain-points/</link><guid isPermaLink="true">https://bash-hacks.com/2026/08/25/008-check-where-a-domain-points/</guid><description>dig +short example.com</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><category>dig</category><category>dns</category><category>debugging</category></item><item><title>Sort a CSV by any column without opening a spreadsheet</title><link>https://bash-hacks.com/2026/08/24/007-sort-csv-by-column/</link><guid isPermaLink="true">https://bash-hacks.com/2026/08/24/007-sort-csv-by-column/</guid><description>sort -t, -k3 -nr sales.csv | head -20</description><pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate><category>sort</category><category>csv</category><category>text</category></item><item><title>Find out what is actually eating your disk</title><link>https://bash-hacks.com/2026/08/21/006-find-what-is-eating-your-disk/</link><guid isPermaLink="true">https://bash-hacks.com/2026/08/21/006-find-what-is-eating-your-disk/</guid><description>du -h -d1 . | sort -hr | head -10</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><category>du</category><category>disk</category><category>sorting</category></item><item><title>Find out which process is sitting on port 8080</title><link>https://bash-hacks.com/2026/08/20/005-find-process-on-port-8080/</link><guid isPermaLink="true">https://bash-hacks.com/2026/08/20/005-find-process-on-port-8080/</guid><description>lsof -nP -iTCP:8080 -sTCP:LISTEN</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate><category>lsof</category><category>ports</category><category>debugging</category></item></channel></rss>