1. difftastic: A structural diff that understands syntax
  2. coreutils: Cross-platform Rust rewrite of the GNU coreutils

Article of the week: How old various Unix signals are

The low numbered signals are the same as they are today, which at least suggests that they date back pretty far. And apart from signal 9 (SIGKILL), signals from 4 (SIGINS, illegal instruction) through 12 (SIGSYS, bad argument to system call) all seem aimed at telling you about specific internal program issues instead of being something that you would actively send.

Tip of the week: Searching for files on your system

# The `find` command is the default go-to included in Unix systems:
% touch file{1..5} && mkdir dir{6..9} && mkdir -p dir10/folder{1..5}

% find . -type f
./file3
./file4
./file5
./file2
./file1

% find . -type d
.
./dir10
./dir10/folder5
./dir10/folder2
./dir10/folder3
./dir10/folder4
./dir10/folder1
./dir6
./dir8
./dir9
./dir7

# Restict searching depth with -mindepth and -maxdepth:
% find . -mindepth 1 -maxdepth 1 -type d
./dir10
./dir6
./dir8
./dir9
./dir7

# Perform operations on the results:
% brew info coreutils --json > coreutils.json && brew info git --json > git.json
% find . -type f -name '*.json' -exec jq '.[]|.desc' {} \;
"GNU File, Shell, and Text utilities"
"Distributed revision control system"

# Delete matching results:
% find . -type f -name '*.json' -delete

Other search tools include:

  • mdfind for macOS (Spotlight CLI)
  • locate for Linux
  • fd a simple, fast and user-friendly alternative to find