Попробуйте следующее, которое должно вернуть рекурсивный результат
find /home/user/myfolder -name '*.html' -exec sh -c '
for file do
yourcommands with "$file"
done' sh {} +
Больше о find и много примеров на http://en.wikipedia.org/wiki/Find, а также несколько разных вещей в https://unix.stackexchange.com/questions/tagged/find
chgrp 0 file
изменит групповое владение файлом file
на группу с GID 0
, которая почти во всех случаях в Linux является группой root
(в BSD, это почти всегдаwheel
). Таким образом, ваша команда find
будет искать по пути, заданному первым позиционным параметром ($1
), все содержащиеся в нем объекты файловой системы, переходить по любым символическим ссылкам на их цели и делать группу владельцем этих объектов GID 0
,root
(илиwheel
).
0 — это UID и GID root. Таким образом, когда вы выполняете chgrp 0, вы меняете групповое владение файлом/каталогом на root.
По сути, владение любым файлом/каталогом в Linux хранится в inode . И он хранится как целое число (для пользователя и второе целое число для группы ). Это зависит только от вашего NSS (, например. /etc/passwd или ldap ), имя которого он покажет вам в ls. Выполняя операцию типа chgrp root file
, система возьмет GID «корневой» группы (, в моем случае это 0 ), и запишет этот 0 в inode. Вы также можете сделать что-то вроде этого:
# touch testfile
# chgrp 135543 testfile
# ls -l testfile
-rw-r--r--. 1 root 135543 0 Aug 21 18:05 testfile
# groupadd -g 135543 testgroup
# ls -l testfile
-rw-r--r--. 1 root testgroup 0 Aug 21 18:05 testfile