duplicity Exclude Globbing ** Asterisk не работает должным образом

Сортировка несжатого содержимого многих сжатых файлов и сохранение результата в несжатом файле:

find. -type f -name '*.gz'
    -exec sh -c 'for n; do zcat "$n" | sort -o "$n.txt"; done' sh {} +

Это выполнит цикл for

for n; do
    zcat "$n" | sort -o "$n.txt"
done

с максимально возможным количеством файлов одновременно. Цикл for, в котором нет in X, будет повторяться по "$@"по умолчанию.

Оболочка sh -cбудет вызываться findс максимально возможным количеством путей к файлам (из-за +вместо \;в конце ), и эти пути будут доступны для оболочка sh -cв $@.


В исходной команде

find. -name *.gz -exec zcat {} | sort > {}.txt \;

у вас проблемы:

  1. *.gzне заключен в кавычки, что означает, что оболочка будет выполнять подстановку имени файла с именами файлов в текущем каталоге.

  2. -execможет работать только с простой командой, а не с конвейером.

  3. Вы не ограничиваетесь обычными файлами, что теоретически означает, что вы можете выбрать каталог с именем something.gz.

0
13.12.2019, 12:00
1 ответ

Я часами копался в Интернете и, наконец, случайно нашел неловкое решение самостоятельно:

Папка Maildir (по какой причине когда-либо )имеет заглавную D MailDir в папке для UserA.

0
28.01.2020, 03:01

Теги

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