Я нашел следующую строку здесь:
find * -maxdepth 0 -type d -exec tar czvf {}.tar.gz {} \; \;
Это предназначено к tar gzip каждая папка в текущем каталоге индивидуально. Но выполнение его возвращает ошибку:
find: paths must precede expression:
На этой ошибке существует несколько сообщений, но они не касаются синтаксиса, используемого здесь.
Кто-либо знает то, что вызывает эту ошибку?
Я проверил это, и ошибка происходит из-за второго \;
:
# Works fine
find * -maxdepth 0 -type d -exec tar czvf {}.tar.gz {} \;
# Errors out
find * -maxdepth 0 -type d -exec tar czvf {}.tar.gz {} \; \;
Этот мог бы, потому что первое завершенное ;
концы команда для -exec
опция и второе завершенное ;
теперь становятся частью эти find
команда и рассматриваются как путь. Это бросает ошибку начиная с -type
, выражение было уже считано.