Qual é a diferença entre 'mkdir -p' e 'install -d'?

3

O que, precisamente , é a diferença no que está sendo realizado por mkdir -p e install -d , em termos de quais alterações os dois comandos estão fazendo no sistema?

    
por Alexander 26.01.2017 / 00:03

2 respostas

5

A principal diferença entre mkdir -p e install -d é que, se o diretório já existir, somente install -d tentará definir os bits de propriedade e de modo de arquivo .

  • install -d chamará make_dir_parents com preserve_existing definido como false
  • mkdir -p chamará make_dir_parents com preserve_existing definido como true .

Se preserve_existing for true e o diretório já existir, a função não tentará definir os bits de propriedade e de modo de arquivo.

mkdir -p e install -d em coreutils chamam exatamente a mesma função make_dir_parents .

Fontes da Coreutil:

por 26.01.2017 / 11:26
5

Para iniciantes, mkdir -p é POSIX, install não é. Então, temos isso de a documentação do GNU install :

If the --directory (-d) option is given, install creates each directory and any missing parent directories. Parent directories are created with mode ‘u=rwx,go=rx’ (755), regardless of the -m option or the current umask. See Directory Setuid and Setgid, for how the set-user-ID and set-group-ID bits of parent directories are inherited.

E:

-d
--directory
Create any missing parent directories, giving them the default attributes. Then create each given directory, setting their owner, group and mode as given on the command line or to the defaults.

Então:

  1. Para o% GNUinstall, as permissões dos diretórios pai podem ser diferentes.
  2. install permite definir a propriedade do diretório de folhas.
por 26.01.2017 / 02:31

Tags