Mam coś takiego:
% ls -1dF /tmp/foo/*
/tmp/foo/000f9e956feab3ee4625aebb65ae7bae9533cdbc/
/tmp/foo/002e34c2218f2c86fefd2876f0e5c2559c5fb3c4/
/tmp/foo/00b483576791bab751e6cb7ee0a7143af43a8069/
.
.
.
/tmp/foo/fedd0f7b545e7ae9600142656756456bc16874d3/
/tmp/foo/ff51ac87609012137cfcb02f36624f81cdc10788/
/tmp/foo/ff8b983a7411395344cad64182cb17e7cdefa55e/
Chcę utworzyć katalog bar
w każdym z podkatalogów foo
.
Jeśli spróbuję to zrobić
% mkdir -p /tmp/foo/*/bar
... dostaję błąd
zsh: no matches found: /tmp/foo/*/bar
(Z perspektywy czasu rozumiem przyczynę błędu.)
Wiem, że mogę rozwiązać pierwotny problem za pomocą pętli for, ale jestem ciekawy, czy zsh
obsługuje jakąś formę rozszerzenia parametrów, która wygenerowałaby pożądany argument dla pojedynczego wywołania mkdir -p
. IOW, rozszerzenie parametru równoważne „dołączaniu /bar
do każdego prefiksu generowanego przez rozwijanie /tmp/foo/*
”, w wyniku czego
% mkdir -p /tmp/foo/000f9e956feab3ee4625aebb65ae7bae9533cdbc/bar ... /tmp/foo/ff8b983a7411395344cad64182cb17e7cdefa55e/bar