um script para substituir o comando mkdir -p

0

Estou escrevendo um script que substitui o comando mkdir -p. Aqui está o que eu tenho até agora:

#!/bin/sh  

n=1;
max=50;
while [ "$n" -le "$max" ]; do
mkdir "s$n"
n='expr "$n" + 1';
done

Eu deveria poder usar este script para digitar aaa / bbb / ccc e ele fará esses diretórios.

    
por King Boi 09.12.2016 / 19:05

2 respostas

3

execute o script como abaixo.

./script.sh abc/def/ghi/jkl

#!/bin/bash

DIR_LIST=${1}

IFS=/
for DIR_NAME in ${DIR_LIST}
do
    mkdir ${DIR_NAME}
    cd ${DIR_NAME}
done
    
por 09.12.2016 / 19:20
1

Usando uma função recursiva:

#!/bin/bash
mkdir_p() {
    local path=$1
    local parent=${path%/*}
    [[ ${path} != /* ]] && parent=${PWD}/${parent}
    [[ ! -d $parent ]] && mkdir_p "${parent}"
    [[ ! -d $path ]] && mkdir "${path}"
}
mkdir_p "${1}"
    
por 18.12.2016 / 04:29