У меня есть архив, который заархивирован кем-то другим, и я хочу автоматически, после загрузки, изменить ветвь файловой системы в извлеченных файлах, чтобы получить доступ для чтения. (Я не могу изменить способ создания архива).
Я заглянул в эту ветку: chmod: Как рекурсивно добавить разрешения на выполнение только к файлам, которые уже имеют разрешение на выполнение, как к другим, но не радуются.
Каталоги изначально поставляются с несколькими, но со всеми ошибочными флагами, они могут выглядеть так:
drwx------
d---r-x---
drwxrwxr-x
dr--r-xr--
Это лишь немногие, что я обнаружил до сих пор, но может быть и больше.
find
ошибки, когда пытается заглянуть в каталог без x
разрешения и поэтому не передает его chmod
. До сих пор я вручную изменял разрешения для родительского каталога, затем заходил в дочерние каталоги, делал то же самое для них и так далее. Но это много ручного труда. Разве нет способа сделать это автоматически?
Т.е. как я это делаю сейчас:
делать:
$ chmod -R +x
$ chmod -R +r
пока я не получу ошибок, то
$ find -type f -exec chmod -x {} +
Но должен быть лучший способ.