Ребята, я тут нашел скриптик, который рекурсивно меняет права на файлы и папки. Он хорошь, но если в имени файла или папки есть пробел, то он затыкается.
Помогите подправить его, чтобы он мог работать и с файлами и папками, которые содержат пробелы. Может нужно просто добавить кавычки куда-то. Но я не знаю как это сделать. А скриптик очень нужен.
===== начало текста скрипта =====
#!/bin/sh
ROOT_DIR=$1
DIR_PERM=$2
FILE_PERM=$3
for name in $(find ${ROOT_DIR})
do
if [ -d $name ]
then
chmod ${DIR_PERM} ${name}
echo "DIRECTORY: '${name}' PERMS CHANGED TO 0x${DIR_PERM}"
else
chmod ${FILE_PERM} ${name}
echo "FILE: '${name}' PERMS CHANGED TO 0x${FILE_PERM}"
fi
done
===== конец текста скрипта =====
Юзается он так: doperm.sh /mnt/archive/oldmail 00770 00600
Помогите подредактировать bash скрипт
Модераторы: /dev/random, Модераторы разделов
-
/dev/random
- Администратор
- Сообщения: 5433
- ОС: Gentoo
Re: Помогите подредактировать bash скрипт
===== начало текста скрипта =====
#!/bin/sh
ROOT_DIR=$1
DIR_PERM=$2
FILE_PERM=$3
for name in $(find ${ROOT_DIR})
do
if [ -d $name ]
then
chmod ${DIR_PERM} ${name}
echo "DIRECTORY: '${name}' PERMS CHANGED TO 0x${DIR_PERM}"
else
chmod ${FILE_PERM} ${name}
echo "FILE: '${name}' PERMS CHANGED TO 0x${FILE_PERM}"
fi
done
===== конец текста скрипта =====
===== начало текста скрипта =====
#!/bin/sh
find "$1" -type d -exec chmod "$2" "{}" ";" -or -type f -exec chmod "$3" "{}" ";"
===== конец текста скрипта =====
;)
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Помогите подредактировать bash скрипт
можно на шесть символов короче:
find "$1" -type d -exec chmod "$2" {} \; -or -type f -exec chmod "$3" {} \;
а если учесть, что набор прав в принципе не может содержать пробелы, то ещё на четыре короче;
find "$1" -type d -exec chmod $2 {} \; -or -type f -exec chmod $3 {} \;
find "$1" -type d -exec chmod "$2" {} \; -or -type f -exec chmod "$3" {} \;
а если учесть, что набор прав в принципе не может содержать пробелы, то ещё на четыре короче;
find "$1" -type d -exec chmod $2 {} \; -or -type f -exec chmod $3 {} \;
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
BIgAndy
- Сообщения: 1923
Re: Помогите подредактировать bash скрипт
Sniker писал(а): ↑25.11.2009 19:39Ребята, я тут нашел скриптик, который рекурсивно меняет права на файлы и папки. Он хорошь, но если в имени файла или папки есть пробел, то он затыкается.
Помогите подправить его, чтобы он мог работать и с файлами и папками, которые содержат пробелы. Может нужно просто добавить кавычки куда-то. Но я не знаю как это сделать. А скриптик очень нужен.
chown/chmod чем не подходят?
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Помогите подредактировать bash скрипт
вероятно тем, что в рекурсивном режиме меняет права без разбора и на папки и на директории. а для директории права rw--w-r--, мгко выражаясь, являются не самыми лучшими, в то время как для файла rwxr-xr-x тоже не хорошо)
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
BIgAndy
- Сообщения: 1923
Re: Помогите подредактировать bash скрипт
Да? Что-то про +-X и прочие полезные фичи забыли...
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Помогите подредактировать bash скрипт
Не только +-, =X тоже можно. На сколько символов короче, считать не буду. (:
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
/dev/random
- Администратор
- Сообщения: 5433
- ОС: Gentoo
Re: Помогите подредактировать bash скрипт
Есть одно но. Флаг X оставит исполнимость не только на каталогах, но и на тех файлах, на которых этот флаг уже есть. Так что он абсолютно не подходит, если нужно, к примеру, _снять_ флаг исполнимости у файлов, оставив его, разумеется, у каталогов.
-
Sniker
- Сообщения: 128
Re: Помогите подредактировать bash скрипт
Вау! Ребята, вот спасибо! Порадовали! Столько полезных советов.