Разрешение отклонено при использовании -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» в каталоге «Рабочий стол»
  • Как перечислить символические ссылки с sftp?
  • ls и фактический размер файла без использования «длинного формата списка»
  • Выполните условие IF из результата, который мы получаем с удаленного сервера
  • Разные выходы команд «ls. *» И «ls *.»
  • Сортировка файлов по времени модификации
  • Почему «ls -L» печатает имя самой ссылки, а не имя файла, на который указывает ссылка?
  • Список файлов, которые не начинаются с определенного префикса
  • Как wc -l `ls` дает фактическое количество строк?
  • как получить последний файл в каждом каталоге
  • Просмотреть расширенный ACL для файла с '+' в ls -l output
  • Linux и Unix - лучшая ОС в мире.