Всегда исключите путь в команде «Найти»

Во второй части strace, рассказывающей о двоичных файлах x32, это странно, но маловероятно:

faccessat(AT_FDCWD, "/libx32/ld-linux-x32.so.2", X_OK) = -1 ENOENT (No such file or directory)

Возможно, кластеру /lib64/ld-linux-x86-64.so.2 как-то не нравится ваш pin_sim.so.

Для дальнейшего устранения проблемы попробуйте запустить /lib64/ld-linux-x86-64.so.2 --list /path/to/your/pin_sim.so в своем кластере.

В следующий раз не забудьте добавить -f в аргументы strace, это включит полную трассировку дерева процессов.

0
14.07.2018, 15:53
1 ответ

Оператор с именем -notне существует в find. Вы имели в виду !? -path— это расширение, встречающееся во многих findреализациях, но не во всех.

Ваша основная проблема может заключаться в том, что все аргументы имени пути должны появляться первыми в командной строке find, и если вы добавите аргумент типа имени пути после расширенного псевдонима, вы получите аргументы findв неправильном порядке.

Общего решения для вашей проблемы не существует, поскольку вам может потребоваться добавить дополнительные findаргументы до или после исключаемого пути в зависимости от ситуации.

Вы можете попробовать:

find() {
    path=$1
    shift
    command find "$1̈́" ! -path '*.sync' "$@"
}

, но это позволяет использовать только один аргумент типа пути.

0
28.01.2020, 04:17

Теги

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