Вам нужно заключить *.md
в кавычки в вашей команде find
, иначе она будет расширена до совпадающих имен при ее запуске. Вы также никогда не должны использовать {}
в цитируемом контексте (, см., например. Можно ли безопасно использовать `find -exec sh -c `?).
Вот решение для цикла оболочки:
for name in./*.md; do
prefix="${name%.md}" # "./2000-01-01-abcd.md" --> "./2000-01-01-abcd"
prefix="${prefix##*-}" # "./2000-01-01-abcd" --> "abcd"
{ echo "$prefix"; cat "$name"; } >"$name".tmp && mv "$name".tmp "$name"
done
То же самое сfind
:
find. -type f -maxdepth 1 -name "*.md" \
-exec sh -c 'p="${1%.md}";p="${p##*-}";{ echo "$p";cat "$1"; }>"$1".tmp && mv "$1".tmp "$1"' sh {} ';'
Ваша команда должна выглядеть следующим образом (для создания базового пула):
zpool create NAME c1t4d0s7 c1t1d0s7...
Необходимо использовать имена дисков, а не их точки монтирования.