С zsh используйте .
спецификатор шарика для соответствия только регулярным файлам:
rm -- **/*(.)
Это удаляет все (нескрытые) регулярные файлы в текущем каталоге и его подкаталогах рекурсивно. Добавьте D
спецификатор шарика для удаления скрытых регулярных файлов (и регулярных файлов в скрытых каталогах) также.
Можно использовать оператор замены процесса <()
из bash
(или zsh
):
4s-import <(zcat huge.gz)
Этот оператор создаст временный FIFO /dev/fd/NN
и замена <(.)
со строкой /dev/fd/NN
. 4s-import
теперь может открыться /dev/fd/NN
и читайте из того FIFO, в то время как bash
будет работать zcat huge.gz
, который отправляет его вывод в /dev/fd/NN
.
Много программ имеют a -
как стандартный вход. Если Ваш делает, используют это, поскольку это "встроено".
Можно также попытаться использовать /dev/stdin
или /dev/fd/0
как файл.
Третья опция состоит в том, чтобы использовать mkfifo
создать FIFO специальный файл. В одной оболочке Вы передаете по каналу в своих данных (например. gunzip > your_fifo_file
), в то время как в другом Вы называете свою программу с FIFO как файл.