Lista de diretórios ignorados para o comando 'tree' [duplicate]

3

Estou escrevendo um script no qual preciso gerar uma árvore de diretórios.

Como passar para tree uma variável com lista de diretórios para ignorar? E esses diretórios estão com espaços no nome.

Eu tentei algo assim:

tree -o /volume1/web/eb.html -T "List" --charset UTF-8 -C -I "$to_ignore" -P '*pdf' --prune --noreport /volume1/docs

Onde o vayable to_ignore é uma lista de diretórios gerados em outro lugar pelo script:

'dir1|dir2|dir with space|dir4'

mas isso não funcionou. Ele caiu no dir com espaço.

Ok, o uso de cotações em torno da variável ajudou nas falhas, mas tree imprime até mesmo os diretórios que exigiram arquivos PDF e estão na lista para serem ignorados. E o que é estranho se eu escrevo esses diretórios para ignorar diretamente no meu comando tree ... do que funciona bem.

    
por Michał Mietłowski 10.07.2015 / 15:16

1 resposta

3

Cite suas variáveis:

$ tree foo                
foo
├── bar foo
│   └── blah
├── baz
│   └── blah
├── foo
├── foo bar
│   └── blah
└── yada

8 directories, 0 files
$ to_ignore='yada|bar foo|baz'
$ tree foo -I "$to_ignore"    
foo
├── foo
└── foo bar
    └── blah

3 directories, 0 files
    
por 10.07.2015 / 15:22

Tags