Это моя ос информация:
sudo uname -a
Linux machine 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u6
(2018-10-08) x86_64 GNU/Linux
Файлы, начинающиеся с test
в /tmp
.
ls -al test*
-rw-r--r-- 1 debian9 debian9 0 Nov 16 14:43 test1
-rw-r--r-- 1 debian9 debian9 0 Nov 16 14:43 test2
-rw-r--r-- 1 debian9 debian9 0 Nov 11 18:28 test.txt
Я хочу перечислить их с помощью find
.
find /tmp -name "test*" -type f -exec echo {} \;
find: ‘echo’: Permission denied
find: ‘echo’: Permission denied
find: ‘/tmp/snap.0_anbox_tzkdA1’: Permission denied
find: ‘/tmp/systemd-private-589e0bcc99cc438d9e12d06af643af76-apache2.service-J7vefp’: Permission denied
find: ‘/tmp/systemd-private-589e0bcc99cc438d9e12d06af643af76-colord.service-xtmKpt’: Permission denied
find: ‘echo’: Permission denied
find: ‘/tmp/pulse-PKdhtXMmr18n’: Permission denied
find: ‘/tmp/systemd-private-589e0bcc99cc438d9e12d06af643af76-rtkit-daemon.service-rVBMKE’: Permission denied
find: ‘/tmp/systemd-private-589e0bcc99cc438d9e12d06af643af76-dovecot.service-zTKk5O’: Permission denied
Почему так много людей find: ‘echo’: Permission denied
?
Бесполезно бегать с root
debian9@hwy:/tmp$ su root
Password:
root@hwy:/tmp# find /tmp -name "test*" -type f -exec echo {} \;
find: ‘echo’: Permission denied
find: ‘echo’: Permission denied
find: ‘echo’: Permission denied
Команда find
может перечислить все файлы, начинающиеся с test
.
find /tmp -name "test*" -type f
/tmp/test2
/tmp/test.txt
/tmp/test1
Почему -exec echo {} \;
не может бежать?
Ничего плохого или что-то еще, как вывод команды ниже.
debian9@hwy:~$ sudo find /tmp -name "test*" -type f -exec /bin/echo "{}" \;
Проверьте разрешение.
debian9@hwy:~$ sudo ls -al /bin/echo
-rwxr-xr-x 1 root utmp 0 Nov 11 18:05 /bin/echo