Почему может -exec повлиять на вывод find в Linux?

Если я запустил эту команду …

sudo find /storage -name "*~" -or -name ".*~" -or -name "#.*#" -or -name ".DS_Store" -or -name "Thumbs.db" 

… он дает мне список совпадающих файлов, как и ожидалось. Однако, если я использую эту команду …

 sudo find /storage -name "*~" -or -name ".*~" -or -name "#.*#" -or -name ".DS_Store" -or -name "Thumbs.db" -exec rm -v {} \; 

… ничего не удаляется. Аналогично, с эхом ничего не печатается …

 sudo find /storage -name "*~" -or -name ".*~" -or -name "#.*#" -or -name ".DS_Store" -or -name "Thumbs.db" -exec echo {} \; 

Как так?

  • Почему открыт порт 1111, и безопасно ли быть?
  • Уровень APM для ноутбука сбрасывается при выходе из Suspend
  • Как преобразовать документ DjVu в PDF в Linux, используя только инструменты командной строки?
  • Как показывать вывод на терминал и сохранять в файл одновременно?
  • Как я могу запустить несколько сеансов экрана автоматически?
  • Как установить VIM на Linux, если у меня нет прав root?
  • Удаленный запуск сценария в Unix, получить выход локально?
  • Нажатие моей подсказки PS1 по ssh
  • 2 Solutions collect form web for “Почему может -exec повлиять на вывод find в Linux?”

    Вы должны правильно группировать свое выражение – в настоящее время -exec применяется только к последней ветви -or .

     sudo find /storage \( -name "*~" -or -name ".*~" -or -name "#.*#" -or -name ".DS_Store" -or -name "Thumbs.db" \) -exec rm -v {} \; 

    Просто помните, что -exec – это просто выражение, которое возвращает true, если команда возвращает ноль, поэтому запуск команды является лишь побочным эффектом.

     find Documents/ -iname '*.txt' -exec echo {} \; -or -iname '*.cpp' -exec echo {} \; 

    Это работает. Надеюсь, это поможет вам немного. Если вы используете exec отдельно со всеми командами -or, команда будет работать.

    Однако я нашел альтернативу вашей проблеме.

     for file in $(find Documents/ -iname '*.txt' -or -iname '*.cpp'| awk '{print $1}'); do rm $file; done 
    Interesting Posts

    Меньше: быстрый переход к номеру строки в большом файле

    Редактирование файлов hosts для блокировки сайтов, не работающих

    Перейти к определенному номеру строки в excel

    Как включить Samsung EVO 840 mSATA SSD Self-Encrypting Drive с Intel RST RAID 0

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

    Отключить «Отключить жесткий диск после» в окне 7

    Работает ли антивирус во время работы на виртуальной машине?

    Как изменить обои Windows 7 Starter Edition?

    Что именно определяет, если фоновая работа убита, когда оболочка завершена или убита?

    Журнал всех приложений, которые запускаются или запускаются вручную на ПК с временем начала и окончания

    Windows 10 Search не работает – после настройки конфиденциальности

    В чем разница между архитектурой Intel (CISC) и ARM (RISC)?

    Легко ли построить монитор с экрана latop?

    Как вы добавляете новые папки для совместного использования с Windows Media Player 12 через DLNA?

    Поврежденная графика, сбои и шумный вентилятор GPU после обновления драйверов NVIDIA GeForce до 364.xx

    Давайте будем гением компьютера.