Я хотел бы найти папку с именем не «STDF», а затем заархивировать ее.
find /a/b/c -mindepth 1 -maxdepth 1 ! -path "STDF" -exec /usr/bin/gzip '{}' \;
Приведенная выше команда не работает.
решение1
можешь попробовать
find /where/to/look/ -type d -not -name STDF
чтобы найти папку
Теперь, когда вы упомянули об ошибке, которую вы получаете, я вижу, что вы используете gzip для сжатия папки, а вы не можете этого сделать. Посмотрите наэтот ответдля получения дополнительной информации о том, как сжать папку
решение2
Для команды gzip
требуется r
флаг.
find /a/b/c -mindepth 1 -maxdepth 1 -type d ! -name '*STDF*' -exec sh -c 'tar -zcvf "${1}".tar.gz "$@"' _ {} \;