zsh recursive glob and batch rename
zsh: list only regular files recursively, then mass-rename safely with zmv
setopt extendedglob; print -l **/*(.); autoload zmv; zmv '(*).txt' '$1.bak'
- tool
- bash12 commands
- tags
- zshtroubleshooting
More bash commands
-
set -euo pipefail; IFS=$'\n\t'Fail fast on errors, unset vars, pipe failures; split only on newline/tab
-
tmp=$(mktemp -d); trap 'rm -rf "$tmp"' EXIT INT TERMAuto-remove mktemp dir on exit/signal; note: quote $tmp to survive spaces
-
diff <(kubectl get cm a -o yaml) <(kubectl get cm b -o yaml)Process substitution compares two streams without temp files
-
mapfile -t lines < file.txt; printf '%s\n' "${lines[@]}"mapfile -t strips newlines; handles spaces unlike for-loop word splitting
-
f=/var/log/app.log.gz; echo "${f##*/}" "${f%.*}" "${f//log/LOG}"basename, strip extension, and global replace without spawning sed/basename