Linux / Comando / mkdir / Comando para criar diretórios

No Linux, mkdir é o comando para criar um novo diretório. Para criar um caminho com vários níveis de uma vez, use -p, que permite manter os diretórios existentes como estão enquanto cria quaisquer diretórios pai que estejam faltando.

Criando e verificando diretórios

mkdir é abreviação da expressão inglesa make directory (criar diretório). O seguinte comando cria um diretório com o nome projects no diretório atual, se ele não existir, e verifica o resultado. Execute-o em um diretório de prática vazio para evitar confusão com dados existentes.

pwd
mkdir projects
ls -ld projects

Primeiro, verifique o local de trabalho atual com pwd e depois verifique se as informações do novo diretório são exibidas em ls -ld. mkdir geralmente não exibe nenhuma mensagem se for bem-sucedido. Se um arquivo ou diretório com o mesmo nome já existir, o comando padrão mostra um erro.

Os caminhos relativos são baseados na localização atual, e caminhos absolutos que começam como /, como /home/user/projects, são especificados a partir do diretório raiz. Verifique o caminho real e as permissões de acesso de acordo com seu ambiente.

Criar junto com diretórios pai

O seguinte comando cria os diretórios pai necessários se eles não existirem. Por exemplo, se work não existir no local de prática, ele criará work, work/reports e work/reports/2024 na ordem.

mkdir -p work/reports/2024
ls -ld work work/reports work/reports/2024

Se você executar mkdir work/reports/2024 sem -p, ele falhará quando o caminho pai não existir. Adicionar -p não causará um erro apenas porque o caminho já existe como um diretório. Ele não exclui conteúdos existentes nem altera as permissões do diretório existente.

No entanto, se houver um arquivo comum com o mesmo nome no meio do caminho ou se você não tiver as permissões necessárias para o diretório pai, ele pode falhar mesmo se você usar -p. Verifique a mensagem de erro, o status de saída e o caminho real juntos para confirmar o sucesso.

Múltiplos diretórios e nomes com espaços

Você pode listar nomes separados por espaços para criar vários diretórios. O seguinte é um exemplo quando os dois nomes ainda não existem no local atual.

mkdir documents images
ls -ld documents images

Se o próprio nome contiver espaços, coloque todo o caminho entre aspas para passá-lo como um único nome. Se não houver aspas, o shell o dividirá nos espaços e os passará como argumentos separados.

mkdir "project files"
ls -ld "project files"

Nomes que começam com um hífen podem ser interpretados como opções. Por exemplo, mkdir -- -archive coloca o nome depois de --, então ele não é tratado como uma opção.

Verifique permissões e resultados ao criar

Geralmente, as permissões padrão de um novo diretório são influenciadas pelo umask do shell atual e pelas configurações do sistema de arquivos. Verifique a máscara atual com umask e confirme as permissões reais do diretório criado com ls -ld.

Você também pode definir as permissões de um diretório recém-criado usando a opção -m do GNU mkdir. O seguinte é um exemplo onde permissões de leitura, escrita e execução são concedidas ao proprietário e nenhuma permissão é dada ao grupo e a outros quando private ainda não existe.

mkdir -m 700 private
ls -ld private

Mesmo se -p e -m forem usados juntos, -m é aplicado ao novo diretório especificado na linha de comando e não é aplicado aos diretórios pai criados automaticamente. Também não aplica novas permissões a diretórios que já existem. Listas de controle de acesso ou políticas do sistema de arquivos podem afetar o acesso real, portanto, verifique os resultados no ambiente necessário. Para o comportamento detalhado das opções, consulte o manual do GNU mkdir.

Quando a criação falha

  • Já existe: Use ls -ld name para verificar se o item existente é um arquivo ou um diretório. -p é apropriado apenas se você quiser usar o diretório existente como está.
  • Caminho pai não encontrado: Verifique a ortografia do caminho e sua localização atual, e então decida se você pode criar os diretórios pai ausentes usando -p.
  • Permissão negada: Verifique se você possui as permissões de escrita e acesso necessárias para o diretório pai e solicite-as ao administrador se necessário.

Você pode remover um diretório vazio criado durante a prática com rmdir após confirmar que ele não contém nenhum conteúdo. rmdir geralmente não remove diretórios que não estão vazios.