В широком масштабе создающие файлы с ударом

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 иначе (системные учетные записи).

5
15.06.2014, 03:47
2 ответа

Есть небольшая ошибка в вашей сенсорной команде. Ваша оригинальная команда,

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: Необходимо убедиться, что каталог рубашки уже существует. В противном случае вы снова получите ту же ошибку не может коснуться .

9
27.01.2020, 20:35

Согласно вашему описанию, имя каждого из этих 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}
1
27.01.2020, 20:35

Теги

Похожие вопросы