Вам нужен mimencode от метапочтовой посылки... Debian имеет некоторую информацию о пакете, но пакет основан на древнем коде Bellcore.
Если Вы просто пытаетесь отправить почту, хотя, Вы могли бы изучить использование дурака; я думаю, что это может mimencode вложения от командной строки.
Я думаю, что Вы, после
find -perm -640 ! -perm 640
т.е. поисковые файлы, которые имеют по крайней мере все полномочия в 640 и которые не имеют 640 как биты полномочий. Или, другими словами, среди файлов, которые читаемы и перезаписываемы их владельцем и читаемы группой, поисковые файлы, которые являются исполняемым файлом или перезаписываемый кем-то другим, чем владелец или читаемый миром (принимающий ACLs). Можно хотеть добавить -type f
ограничить регулярными файлами, или по крайней мере ! -type d -o -type d -perm 750 ! -perm 750
позволить каталогам иметь разрешение выполнения.
Если Вы хотите соответствовать файлам, биты полномочий которых, интерпретируемые как целое число, выше, чем 0o640 (который действительно не имеет никакого смысла), Вы оказываетесь перед необходимостью перечислять несколько случаев. При рассмотрении поразрядного представления существует два пути к числу между 0 и 0o777, чтобы быть больше, чем 0o640: или 0o100 укусил, установлен в дополнение к 0o600 битам, или 0o640 биты установлены. Удалите финал ! -perm 640
если Вы хотите, чтобы полномочия 0o640 соответствовали.
find -perm -700 -o -perm -640 ! -perm 640
Вот острота, которую Вы могли использовать:
find . -type f -printf %p:%m\\n | while read x; do name=${x%:*}; perm=${x#*:}; if [[ $perm -gt 640 ]]; then echo $name; fi done
Эта команда находит все регулярные файлы от Вашего текущего пути и печатает их имя (%p
) и их полномочия (%m
) разделенный двоеточием. Каждая строка вывода далее читается в переменную $x
, который затем разделяется независимо в переменные $name
и $perm
:
${x%:*}
средства возвращают значение x с его удаленным суффиксом
${x#:*}
средства возвращают значение x с его удаленным префиксом
Если полномочия файла соответствуют критериям, распечатайте имя файла.
PS: Для простого использования можно присвоить команду псевдониму:
alias advfind='find ...'
Вот отличная команда, которую вы можете редактировать для собственного использования:
find -perm -o+r -exec stat --printf='%A %a %n --- %F\n' {} \;
Пример результата:
-rw-r--r-- 644 dir1//file4 --- regular file
lrwxrwxrwx 777 dir1/file5 --- symbolic link
Находит файлы с разрешением для чтения другими. Затем распечатайте разрешения в символической и восьмеричной форме, путь к файлу и тип файла.
find . -type f -perm /137
. Вы знаете то, что было неправильным с этим? – testing 21.02.2012, 12:49-perm /137
файлы поисков, которые имеют по крайней мере один из указанного набора битов, т.е. исполняемый файл любым или перезаписываемый любым, но владельцем или читаемый миром. Это может на самом деле быть тем, что Вы после, но это не то, что Вы спросили. – Gilles 'SO- stop being evil' 21.02.2012, 15:05-o
средний? Или? и!
средстваNOT
? Делает! -type d -o -type d -perm 750 ! -perm 750
означайте не находить каталоги или каталоги по крайней мере с 750 разрешениями с не 750 битов полномочий?find -perm -700 -o -perm -640 ! -perm 640
показывает мне много каталогов... Это управляет средний находить файлы с 700 разрешениями, или по крайней мере 640 разрешений без 640 битов полномочий установили? Я пытаюсь получить эту нотацию под своим капотом. – testing 21.02.2012, 21:25-o
или,!
не, и сопоставление и. Кроме того, test1-o test2 test3 означает test1 или (test2 и test3).-perm -700 -o -perm -640 ! -perm 640
находит файлы, что или иметь все биты в 700 наборах, или имеют все биты в 640 наборах и по крайней мере еще одном. – Gilles 'SO- stop being evil' 21.02.2012, 21:27