LinuxForum.Fans
Тема

Создать четыре файла, в которые поместить имена файлов

Автор: darkgrey19 11 сообщений 3608 просмотров
#383305

незнаю сюда я обращаюсь или нет, но очень нужна помощь
помогите пожалуйста с заданием:
В домашнем каталоге создайте четыре файла, в которые помещайте имена файлов с правами доступа следующим образом: в первый, если права rwx установлены для владельца; во второй, если для группы; в третий, если для остальных; в четвертый, если такой группы прав не установлено ни для кого.

Тема переименована. yars.

#383306
"darkgrey19" написал:
создайте четыре файла, в которые помещайте имена файлов

Тяжкий бред.

#383308

Согласен, но очень нужно

#383315

вроде разобрался это делается с помощью find -perm

#383321

1. http://linuxforum.ru/viewtopic.php?id=18294.
2.

text
find . -type f -perm 0700 -exec "basename {}  >> urwx.txt" \
-o -perm 0070 -exec  "basename {} >> grwx.txt" \
-o -perm 0007 -exec "basename {} >> orwx.txt" \
-exec "basename {} >> other.txt" \;

Предлагаю это довести до ума самостоятельно. Команда должна быть выполнена в каталоге с подопытными файлами. В помощь man bash, man find и "Искусство написания сценариев Bash/Bash scripting guide".

#383322
"yars" написал:
Команда должна быть выполнена в каталоге с подопытными файлами.

Как это помещает имена файлов в созданные файлы, согласно заданию? Я Вас не понял или задание?

#383324

Если я правильно понял задачу, есть каталог с файлами, у которых выставлены максимальные права только или для владельца, или для группы, или для остальных, нужно поместить их имена согласно выставленным правам в новые файлы, а не в те же.

#383329

yars, а! Теперь догнал, спасибо!

#384136
"stranger" написал:
создайте четыре файла, в которые помещайте имена файлов

Тяжкий бред.на самом деле -- устами младенца глаголит истинна. Действительно: каталоги это файлы в которых имена других файлов.

"darkgrey19" написал:
В домашнем каталоге создайте четыре файла, в которые помещайте имена файлов с правами доступа следующим образом: в первый, если права rwx установлены для владельца; во второй, если для группы; в третий, если для остальных; в четвертый, если такой группы прав не установлено ни для кого.

ну сами права можно получить так:
[console]stat -c%a filename[/console]
далее с ними можно работать как с обычными десятичными числами (хотя они на самом деле восьмеричные), например выделить права хозяина можно так:
[console]$ A=$(stat -c%a .)
$ ((A=A/100))
$ echo $A
7
[/console]
ну "7", это и есть rwx.

Войдите или зарегистрируйтесь, чтобы ответить.