Как я могу повторно использовать путь со звездочкой -в zsh?

Вместо того, чтобы проверять содержимое архива перед его извлечением, вы также можете извлечь его, используя unar, что обеспечит поведение, которое вы ищете после :по умолчанию, если архив содержит один каталог верхнего -уровня, unarизвлекает его как -, в противном случае он создает каталог с именем архива и извлекает его туда. Вы можете принудительно создать каталог во всех случаях с опцией -d.

unarтакже имеет то преимущество, что поддерживает широкий спектр форматов архивов.

4
01.07.2021, 19:04
1 ответ

С zshэто было бы просто:

for f (schemas/core/**/*.xsd) xsdcxx cxx-tree --output-dir $f:h $f

Где $f:h— заголовок (имя каталога )файла $f, как в csh или vim.

Измените $fна $f:Pи $f:hна $f:h:P, чтобы получить реальный путь ¹ файла и заголовка файла соответственно.

Здесь вы можете изменить schemas/core/**/*.xsdна schemas/core/**/*.xsd(N)(, где Nвключает nullglobдля этого расширения одного глобуса ), чтобы избежать ошибки, если совпадений нет. Или (N.), чтобы ограничиться только обычными файлами (, исключая все другие типы файлов, такие как сокеты, FIFO, каталоги, символические ссылки и т. д. ), или (N-.), чтобы также включать символические ссылки на обычные файлы.


¹, то есть канонический путь к соответствующему файлу :абсолютный и символическая ссылка -свободная, как и в стандартной функции realpath(). См. также модификаторы :aи :A, описанные в info zsh modifiers, как возможные альтернативы.

10
28.07.2021, 11:21

Теги

Похожие вопросы