Я скопировал огромное количество (Android SDK) файлы от общего каталога до моей системы. Теперь все файлы, которые их типы MIME application/x-shellscript
или application/x-executable
, кажется, что не исполняемый файл. Например, когда я пытаюсь работать mksdcard
Я получаю эту ошибку:
$ ./mksdcard
bash: ./mksdcard: Permission denied
Как я могу найти только файлы с теми типами MIME? И затем как я могу изменить те полномочия?
Примечания:
1-, Когда я попробовал find <path> -type f -executable
с как пользователь root это показывает все файлы (даже.PNG файлы) и когда я попробовал это типичным пользователем, это ничего не показывает. Я не знаю, как отфильтровать файлы с вниманием к их типу MIME.
2-каталогов Share (источник) в настоящее время не доступны.
Подсказка:
человек cp
Затем нажимает / и входит attr
(часть 'атрибутов'), и нажатие ВХОДЯТ .
Теперь, считайте части текста, который был отмечен.
Удар n или p заставят дисплей перейти к 'n'ext или 'p'revious экземпляр.
--attributes-only don't copy the file data, just the attributes
, Если я не совсем ошибаюсь, Вы получите настройки для всех упомянутых файлов, исправленных этим.
Эти find
команда не тестирует сам mimetype, но можно использовать его для выполнения эти mimetype
команда и grep
результат.
, Например
find path/to/dir/ -type f -exec sh -c '
for f; do
mimetype -b "$f" | grep -Eq "application/(x-shellscript|executable)" &&
printf "%s\n" "$f"
done
' sh {} +
Для выполнения некоторой операции на файлах соответствия (такой как chmod
или chown
) замените эти printf
команда с этим, например,
find path/to/dir/ -type f -exec sh -c '
for f; do
mimetype -b "$f" | grep -Eq "application/(x-shellscript|executable)" &&
chmod u+x "$f"
done
' sh {} +
я высоко рекомендую проверить текущее владение и полномочия первый , например, с ls
find path/to/dir/ -type f -exec sh -c '
for f; do
mimetype -b "$f" | grep -Eq "application/(x-shellscript|executable)" &&
ls -l "$f"
done
' sh {} +