Permalink
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
54 lines (48 sloc) 1.32 KB
# ----------------------------------------------------------------------------
# Cria diretórios e subdiretórios, e muda diretório de trabalho (primeiro).
#
# Opções:
# -n: Cria os diretórios, mas não muda o diretório de trabalho atual.
# -s: Apenas simula o comando mkdir com os argumentos
#
# Uso: zzmcd [-n|-s] <dir[/subdir]> [dir[/subdir]]
# Ex.: zzmcd tmp1/tmp2
#
# Autor: Itamar <itamarnet (a) yahoo com br>
# Desde: 2018-03-30
# Versão: 1
# Licença: GPL
# Tags: diretório, emulação
# ----------------------------------------------------------------------------
zzmcd ()
{
zzzz -h mcd "$1" && return
local opt dir erro
# Verificação das opções
while test "${1#-}" != "$1"
do
case "$1" in
-n) opt="n"; shift;;
-s) opt="s"; shift;;
--) shift; break;;
-*) zztool -e uso mcd; return 1;;
esac
done
# Verificação dos parâmetros
test -n "$1" || { zztool -e uso mcd; return 1; }
# Cria/simula os diretório
case "$opt" in
s) echo mkdir -p $*; erro=0 ;;
*)
mkdir -p $* 2>/dev/null && test 'n' = "$opt" && erro=0
# Verificando diretórios que falharam
for dir in $*
do
test -d "$dir" || zztool erro "'$dir' não criado."
done
;;
esac
# Desloca-se ao primeiro diretório criado no último nivel possível
test -d "$1" && test -z "$opt" && cd "$1"
return $erro
}