diff options
| author | Sebastiano Tronto <sebastiano@tronto.net> | 2023-10-30 19:07:08 +0100 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano@tronto.net> | 2023-10-31 07:25:49 +0100 |
| commit | 0c2a1363f154be65c20dc5dc42c0a41f7caf8da9 (patch) | |
| tree | 9d7b7fd56b16c4f3f748a0068831fab48b4c0511 /src/blog | |
| parent | d560dad19bffd760af42fda754ee80faa18f10de (diff) | |
| download | sebastiano.tronto.net-0c2a1363f154be65c20dc5dc42c0a41f7caf8da9.tar.gz sebastiano.tronto.net-0c2a1363f154be65c20dc5dc42c0a41f7caf8da9.zip | |
Halloween blog post
Diffstat (limited to 'src/blog')
| -rw-r--r-- | src/blog/2023-10-31-spooky-shell-expansions/spooky-shell-expansion.md | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/blog/2023-10-31-spooky-shell-expansions/spooky-shell-expansion.md b/src/blog/2023-10-31-spooky-shell-expansions/spooky-shell-expansion.md new file mode 100644 index 0000000..a70c744 --- /dev/null +++ b/src/blog/2023-10-31-spooky-shell-expansions/spooky-shell-expansion.md | |||
| @@ -0,0 +1,47 @@ | |||
| 1 | # Spooky shell expansions | ||
| 2 | |||
| 3 | *Let me tell you a story to chill the bones* | ||
| 4 | *One that happened to me long time ago* | ||
| 5 | |||
| 6 | *It was a dark and cold night* | ||
| 7 | *Plague spreading outside* | ||
| 8 | |||
| 9 | *In the summer of '20* | ||
| 10 | *I was hacking alone* | ||
| 11 | *A little program I wanted to install* | ||
| 12 | *Not in `/usr/local`, but in my `$HOME`* | ||
| 13 | |||
| 14 | *Young and foolish I was* | ||
| 15 | *As I changed the Makefile* | ||
| 16 | *`PREFIX = ~/.local`* | ||
| 17 | *And then `make` I typed* | ||
| 18 | |||
| 19 | *That did not work, of course* | ||
| 20 | *And I soon realized* | ||
| 21 | *A new folder named `~`* | ||
| 22 | *Had shown up in my `$HOME`* | ||
| 23 | |||
| 24 | *"How foolish I was" - I thought* | ||
| 25 | *"That must not work,* | ||
| 26 | *A Makefile won't expand* | ||
| 27 | *As a shell script sure does"* | ||
| 28 | |||
| 29 | *A folder named `~`* | ||
| 30 | *When left alone,* | ||
| 31 | *Is no reason to fear* | ||
| 32 | *Does no harm at all* | ||
| 33 | |||
| 34 | *But care must be taken* | ||
| 35 | *And alas, I did not* | ||
| 36 | *Soon to learn the hard way* | ||
| 37 | *What a `~` gives, a `~` takes away* | ||
| 38 | |||
| 39 | *"Let this be undone!" I exclaimed* | ||
| 40 | |||
| 41 | *As I typed* | ||
| 42 | |||
| 43 | *Four little bytes* | ||
| 44 | |||
| 45 | ``` | ||
| 46 | $ rm ~ | ||
| 47 | ``` | ||
