найдите: пути должны предшествовать выражению:

Я нашел следующую строку здесь:

find * -maxdepth 0 -type d -exec tar czvf {}.tar.gz {} \; \;

Это предназначено к tar gzip каждая папка в текущем каталоге индивидуально. Но выполнение его возвращает ошибку:

find: paths must precede expression:

На этой ошибке существует несколько сообщений, но они не касаются синтаксиса, используемого здесь.

Кто-либо знает то, что вызывает эту ошибку?

2
задан 13 April 2017 в 15:14

1 ответ

Я проверил это, и ошибка происходит из-за второго \;:

# 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, выражение было уже считано.

4
ответ дан 2 December 2019 в 02:25

Другие вопросы по тегам:

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