split -b 10M -d cuts the file, cat parts* > file rejoins it, and only sha256sum proves the result is identical. Fixed suffix length silently truncates.
Blog
CliAI blog
Latest news, deep dives and how-tos around the CliAI ecosystem.
-
2026-07-28
Split a large file into parts, and put it back together
-
2026-07-25
Count files in a directory, recursively and by type
find . -type f | wc -l is the honest total, and one sed pipeline breaks it down by extension. A newline in a filename quietly inflates the count.
-
2026-07-23
pg_dump and pg_restore without the version trap
pg_dump refuses to touch a server newer than itself, so match the client version first. Then -Fc gives you a dump pg_restore can open selectively.
-
2026-07-20
git bisect: find the commit that broke it
git bisect run ./check.sh finds the first bad commit without a single manual answer. Exit 0 means good, non-zero means bad, and 125 means skip this commit.
-
2026-07-18
Restart a service and actually verify it came back
systemctl restart prints nothing whether it worked or not, so chain systemctl is-active after it. And know that a typo in the unit name also answers inactive.
-
2026-07-16
netstat: command not found — use ss instead
netstat lived in net-tools, which minimal systems no longer ship. ss -tulpn replaces netstat -tulpn line for line, and ip route replaces netstat -r.
-
2026-07-13
Linux equivalents of the Windows commands you know
dir is ls -l, type is cat, findstr is grep, ipconfig is ip addr and netstat -ano is ss -tulpn. Keep the table open for a week and three habits will still bite you.
-
2026-07-11
Docker logs taking up disk space? Truncate, then cap
truncate -s 0 on the container LogPath frees the space at once and keeps docker logs working, while rm breaks it. Then set max-size so the file can never grow back.
-
2026-07-09
The dig command to check a DNS record
DNS propagation isn't a broadcast, it's cache expiry. Compare two resolvers with dig to see whether a record has actually changed everywhere.
-
2026-07-06
Copy Files Matching a Pattern, Keep Directory Structure
cp --parents and rsync copy the same files into different destination trees: dst/src/a/b/file versus dst/a/b/file. Tested end to end, not assumed.
-
2026-07-04
kubectl get events sorted by time
kubectl get events --sort-by='.lastTimestamp' lists cluster events oldest to newest. Events show what the cluster did to a pod — check them before logs.
-
2026-07-02
Delete all merged local branches in git
git branch --merged main lists merged branches, but it never sees ones closed by squash merge. Check git branch -vv for the gone marker to catch those before deleting.