найдите команду: - или опция не работает

Столкнулся с этим потоком из tmux-пользовательского списка рассылки. Поток был назван: заголовки набора, не работающие. Существует несколько вещей от этого потока для попытки. Существует более чистая версия потока здесь также.

Ресурсы XTerm

Для начинающих возможная фиксация должна была добавить следующую строку к Вашему файлу Ресурсов XTerm, ~/.Xresources:

XTerm*allowSendEvents: true

Отладка tmux подсказки

Были также некоторые подсказки по отладке в этом потоке, который может помочь Вам также.

подробный tmux

  1. закройте все tmux сеансы
  2. выполните команду: tmux -vvvvv
  3. выполните команду: vi foo
  4. сохраните файл
  5. выход tmux

После выполнения, таким образом, у Вас должно быть 3 файла, что-то как они:

  • tmux-out-21594.log
  • tmux-client-21592.log
  • tmux-server-21594.log

информация о tmux

$ tmux info
tmux 1.4, pid 22182, started Fri May 10 04:00:37 2013
socket path /var/run/tmux/tmux-500/default, debug level 0
system is Linux 2.6.35.14-106.fc14.x86_64 #1 SMP Wed Nov 23 13:07:52 UTC 2011 x86_64
configuration file is /home/saml/.tmux.conf
protocol version is 6

Clients:
 0: /dev/pts/12 (8, 11): 0 [132x24 xterm] [flags=0x1/0x38, references=0]

Sessions: [5/10]
 0: 0: 1 windows (created Fri May 10 04:00:37 2013) [132x23] [flags=0x0]
   0: bash [132x23] [flags=0x8, references=1, last layout=-1]
     0: /dev/pts/48 22183 13 1/23, 135 bytes; UTF-8 0/23, 0 bytes

Terminals:
xterm [references=1, flags=0x0]:
 1: acsc: (string) ``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~
 0: AX: (flag) true
 2: bel: (string) \007
 ...
 ...
144: smul: (string) \033[4m
145: vpa: (string) \033[%i%p1%dd
146: xenl: (flag) true

Jobs:

5
11.07.2014, 17:01
3 ответа
[

]Попробуйте заключить выражения в круглые скобки, как указано в man-странице:[

] [
find . -type f \( -name '*.c' -or -name '*.h' -or -name '*.cpp' \) -exec ls {} \;
] [

]должно сработать.[

]
9
27.01.2020, 20:33
[

] С помощью [] GNU find[] можно использовать опцию []-regex[]:[

] [
find . -type f -regex '.*\.\(c\|h\|cpp\)' -exec ls {} \;
]
2
27.01.2020, 20:33

Вы можете попробовать использовать дерево find -D. [expr ..] , чтобы понять, что делает find с вашей исходной командой.

Вы должны понимать, что -тип f , а также -exec ls .. выражения и привязаны к остальным выражениям с более высоким приоритет, чем или s.
Таким образом, ваша исходная команда будет проанализирована примерно так: (- введите f AND -name * .c) OR -name * .h OR (-name * .cpp AND -exec ls) (обратите внимание, что or на самом деле двоичное, а не троичное, поэтому a | b | c на самом деле (a | b) | c , но вы понимаете ).
Теперь вы заметите, что find не знает, что делать, за исключением файлов, соответствующих *. Cpp , поскольку в других случаях нет действительного оператора (поэтому вы можете даже увидеть segfault или что-то подобное в отладочной информации).

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

1
27.01.2020, 20:33

Теги

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