Почему 'sudo bash && cd desktop' не приводит к папке рабочего стола? [duplicate]

 найти. -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*(.)
6
13.10.2014, 22:52
0 ответов

Теги

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