найти. -maxdepth 1 -mindepth 1 -not -type f -name "Type1_201608 * .xml"
Это означает: для файлов в текущем каталоге (
. -maxdepth 1 -mindepth 1
), перечислите файлы, которые не являются обычными файлами (-not -type f
) и имеют совпадающее имя"Type1_201608 * .xml
.Поскольку вы хотите перечислить только файлы, соответствующие
Type1 _ *. xml
, ваша команда должна будет где-то включить этот шаблон! А поскольку вы хотите работать с обычными файлами, не отрицайте-тип f
].find . -maxdepth 1 -mindepth 1 -type f -name "Type1_*.xml" -name "Type1_201608*.xml"
Не анализируйте вывод
find
. Используйте-exec
, это то, для чего он нужен.find . -maxdepth 1 -mindepth 1 -type f -name "Type1_*.xml" -name "Type1_201608*.xml" -exec gzip -5 {} +
В современных оболочках, если шаблон
Type1_ * .xml
не соответствует ни одному каталогу или символической ссылке, которую вы хотите исключить, для этого вам не нуженfind
. Вы можете использовать расширенные шаблоны глобусов ksh, которые также являются доступно в bash .shopt -s extglob gzip -5 Type1_!(201608*).xml
В zsh вы можете включить расширенные шаблоны глобусов ksh, но вы можете все так что используйте собственный zsh .
setopt extended_glob gzip -5 Type1_*.xml~Type1_201608*
А в zsh, если вы хотите убедиться, что сопоставляются только обычные файлы, вы можете использовать квалификатор glob .
setopt extended_glob gzip -5 Type1_*.xml~Type1_201608*(.)