Разрешение отклонено при использовании -exec {} ls с командой find

При выполнении следующей команды он дает мне permission denied сообщение для всех файлов.

 find /data/code/ -name "*.jar" -exec {} ls \; find: `/data/code/project/shared/build/thirdparty/log4j-1.2.8/commons-logging-1.0.4.jar': Permission denied 

Но если я это сделаю

 ls /data/code/project/shared/build/thirdparty/log4j-1.2.8/commons-logging-1.0.4.jar 

Он печатает, дает правильный вывод без permission denied .

 /data/code/project/shared/build/thirdparty/log4j-1.2.8/commons-logging-1.0.4.jar 

Что я делаю не так?

ps: Мне нужно перечислить и удалить все файлы jar в /data/code

One Solution collect form web for “Разрешение отклонено при использовании -exec {} ls с командой find”

Выполняя:

 find /data/code/ -name "*.jar" -exec {} ls \; 

вы пытаетесь выполнить обнаруженный файл (например, /data/code/project/shared/build/thirdparty/log4j-1.2.8/commons-logging-1.0.4.jar ) с ls в качестве аргумента для него, что приводит к разрешение отклонено.

Просто переключите заказ:

 find /data/code/ -name "*.jar" -exec ls {} \; 

У GNU find есть опция -ls , поэтому в GNU find вы можете просто сделать:

 find /data/code/ -name "*.jar" -ls 
  • Результат «ls | wc -l "не соответствует реальному количеству файлов
  • ls в славных 256 цветах
  • ls'ing через полное дерево каталогов для создания одного доступного списка файлов
  • Результат ls *, ls ** и ls ***
  • Поиск файлов для строки и если найден, проверьте, существует ли файл с парным именем в том же каталоге
  • `echo test?` печатает `test2`, но` ls test? 'ничего не печатает
  • Файлы Concat 1000 в каталоге
  • Что означает список @ после каталога?
  • Что такое команда Linux, чтобы отобразить, сколько имен файлов в каталоге заканчивается двумя цифрами
  • Разница между `ls -c` и` ls -t`
  • Как заказать несколько опций команды (ls)?
  • Linux и Unix - лучшая ОС в мире.