Найти начальную точку команды с обрезкой пути

Вы должны установить пакет texlive-humanities:

sudo apt install texlive-humanities

Он содержит linguexпакет LaTeX (см. список файлов в пакете).

0
17.09.2021, 09:44
1 ответ

-pathсоответствует полному пути, сгенерированному find. Когда вы начинаете с .,имя пути начинается с этого; когда вы начинаете с /path/from/start(, /.не требуется и только усложнит ситуацию ), имя пути начинается с /path/from/start.

Таким образом, вам нужно сопоставить полный путь.

find /path/from/start -path '/path/from/start/anaconda3/*' -prune -o -name '*R' -print

Так как это удалит сам /path/from/start/anaconda3, вам даже не нужна часть /*в конце:

find /path/from/start -path /path/from/start/anaconda3 -prune -o -name '*R' -print

В принципе, с -pathнужно помнить, что начальный путь повторяется в путях «критериев»:

find /path/from/start -path /path/from/start/anaconda3 -prune -o -name '*R' -print
     ^^^^^^^^^^^^^^^^       ^^^^^^^^^^^^^^^^

find. -path './anaconda3/*' -prune -o -name '*R' -print
     ^        ^

Если это единственный каталог anaconda3, который вы хотите обрезать, или если вы хотите обрезать все каталоги anaconda3, вы можете использовать -nameвместо:

find /path/from/start -name anaconda3 -prune -o -name '*R' -print

Все это также применимо, когда вы указываете несколько начальных путей. :Каждое -pathвыражение будет соответствовать полному пути, полученному из любого из начальных путей. Таким образом, у вас может быть следующее:

find /path/from/start /otherpath/from/elsewhere \
     -path /path/from/start/anaconda3 -prune -o \
     -path /otherpath/from/elsewhere/anaconda3 -prune -o \
     -name '*R' -print
6
17.09.2021, 10:43

Теги

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