umask
обычно устанавливается в масштабе всей системы через файл конфигурации: /etc/login.defs
:
$ grep UMASK /etc/login.defs
UMASK 077
Это значение может быть переопределено, но обычно не через также /etc/bashrc
, /etc/profile
и/или пользователями в их $HOME/.bashrc
(Принятие они используют Bash).
Если Вы grep
для "umask" в тех вышеупомянутых файлах Вы также заметите это на полях RHEL:
$ grep umask /etc/bashrc /etc/profile
/etc/bashrc: # By default, we want umask to get set. This sets it for non-login shell.
/etc/bashrc: umask 002
/etc/bashrc: umask 022
/etc/profile:# By default, we want umask to get set. This sets it for login shell
/etc/profile: umask 002
/etc/profile: umask 022
Рытье глубже:
/etc/bashrc
# By default, we want umask to get set. This sets it for non-login shell.
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
/etc/profile
# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
Так, по крайней мере, в системе RHEL umask
также 002
если Ваш UID больше, чем 199, и 022
иначе (системные учетные записи).
Есть небольшая ошибка в вашей сенсорной команде. Ваша оригинальная команда,
touch shirts/{tee,crew,turtleneck}.{XXL,XL,L,M,S,XS}.{red,yellow,blue}/{info,inv}
В конце концов, есть /, которая снова пытается создать каталог, и так как каталога не существует, вы получите ошибку, как,
touch: cannot touch `/shirts/turtleneck.XS.blue/inv': No such file or directory
Однако, так как вам нужны только файлы, вам нужно изменить вашу оригинальную команду, как,
touch shirts/{tee,crew,turtleneck}.{XXL,XL,L,M,S,XS}.{red,yellow,blue}.{info,inv}
P.S: Необходимо убедиться, что каталог рубашки
уже существует. В противном случае вы снова получите ту же ошибку не может коснуться
.
Согласно вашему описанию, имя каждого из этих 108 файлов должно соответствовать формату style.size.color.ext
.
Таким образом, это должно быть
mkdir shirts
touch {tee,crew,turtleneck}.{XXL,XL,L,M,S,XS}.{red,yellow,blue}.{info,inv}
То, что touch
делает, это создает пустой файл, но вы пытаетесь создать рубашку-директорию с различными поддиректориями. touch
не может этого сделать.
Edit: Вы также можете сделать команду touch
выше короткой / выглядеть лучше:
touch {tee,crew,turtleneck}.{{X,XX,}L,M,{X,}S}.{red,yellow,blue}.{info,inv}