Autor Tópico: Criando uma árvore de diretórios em uma única linha  (Lida 4468 vezes)

Offline voyeg3r

  • Usuário Ubuntu
  • *
  • Mensagens: 65
    • Ver perfil
    • http://vivaotux.blogspot.com
Criando uma árvore de diretórios em uma única linha
« Online: 17 de Dezembro de 2006, 10:41 »
para criar uma árvore de diretórios (ficheiros em portugal) faça:

mkdir -p docs/{img/{fotos/,wallpapers/,icons/},textos/{man/{shel/,vim/}}}

dica adicional - para entrar numa pasta de qualquer maneira faça:

  pasta=~/tmp

  [ -d $pasta ] || mkdir $pasta ; cd $pasta


ou "||" pasta ~/tmp existe ou vou cria-la "mkdir ~/tmp" em seguida ";" entre na mesma

Referências você encontra aqui (em inglês)
http://www-128.ibm.com/developerworks/aix/library/au-badunixhabits.html
« Última modificação: 17 de Dezembro de 2006, 10:44 por voyeg3r »

Offline candido1212

  • Usuário Ubuntu
  • *
  • Mensagens: 2
    • Ver perfil
Re: Criando uma árvore de diretórios em uma única linha
« Resposta #1 Online: 25 de Outubro de 2008, 01:14 »
Estou com problemas em relacao a isso

diretamente pela linha de comando funciona, mas quando é executado em um script sh nao funciona.

exemplo, parte da linha no script:

mkdir -p xinha/{image,lang,plugins,skins,images}



agora se executar a linha acima, diretamente pela linha de comando, funciona, qual ser á o problema?? Alguém saberia dizer o problema.

Me parece que nao esta no mkdir, e sim no ambiente que use esse tipo de sintaxe {}


tentei usar:  #sh script.sh
tentei: #bash script.sh

no topo do arquivo mudei de #!/bin/sh para #!/bin/bash

também nao funcionou

Offline felipeborges

  • Usuário Ubuntu
  • *
  • Mensagens: 651
    • Ver perfil
    • felipe@borges:~# Liberdade não tem Preço!
Re: Criando uma árvore de diretórios em uma única linha
« Resposta #2 Online: 25 de Outubro de 2008, 10:36 »
O script sh deve está executando na pasta /bin, ou /sbin, como foi especificado no cabeçalho do shell script, assim ele não tem permissões de criar tais diretórios localmente.

Tente especificar o diretório em que o script trabalhará. Um cd /home/<user>/ antes das demais linhas já leva a execução para este script.
Meu blog sobre GNU/Linux
Debian Lenny e Gentoo.

Offline candido1212

  • Usuário Ubuntu
  • *
  • Mensagens: 2
    • Ver perfil
Re: Criando uma árvore de diretórios em uma única linha
« Resposta #3 Online: 27 de Outubro de 2008, 01:41 »
sim eu sei, é que apenas passei uma parte do codigo vou passar mais completo

#!/bin/bash
PATH_TPARTY="/web/tparty"
mkdir -p tparty
cd tparty

Xinha()
{
        # http://xinha.webfactional.com/wiki/DownloadsPage
        mkdir -p xinha/{image,lang,plugins,skins}
}



Este é uma parte mais completa do codigo SH

como eu faço,

vou até a pasta onde desejo, e entao
./caminho_do_script.sh

que é o exemplo acima (conteudo acima)

como disse no post anterior, pela linha de comando, funciona, mas pelo script cria uma pasta "{image,lang,plugins,skins}", ou seja, o ambiente nao interpreta que dentro de {} tem nome de pastas (image, lang, ...)


Offline punish3r

  • Usuário Ubuntu
  • *
  • Mensagens: 3
  • Ubuntu
    • Ver perfil
Re: Criando uma árvore de diretórios em uma única linha
« Resposta #4 Online: 11 de Novembro de 2008, 17:30 »
boas,
também não conheço muito de script sh mas ainda hoje também estava com uns problemazitos parecidos em solaris.

Tenta colocar um acento grave antes e depois do comando com o descrito abaixo.

`mkdir -p xinha/{image,lang,plugins,skins}`