tree em um script de shell não acrescenta barras a diretórios

3

Eu tenho um script de shell que executa o comando tree

$ cat _tree.sh 
#!/bin/sh
tree -L 2 --charset ascii -I "_tree.sh|LICENSE|README.md|node_modules|nbproject"
$ sh _tree.sh 
.
|-- bower.json
|-- dpl
|-- dst
|-- gulpfile.js
|-- package.json
'-- src
    |-- fonts
    |-- images
    |-- scripts
    '-- styles

7 directories, 3 files
$

Quando executo o comando diretamente,

$ tree -L 2 --charset ascii -I "_tree.sh|LICENSE|README.md|node_modules|nbproject"
.
|-- bower.json
|-- dpl/
|-- dst/
|-- gulpfile.js
|-- package.json
'-- src/
    |-- fonts/
    |-- images/
    |-- scripts/
    '-- styles/

7 directories, 3 files
$

As barras de encaminhamento ( / ) são anexadas. Como posso fazer o arquivo _tree.sh fazer isso?

    
por Jin Kwon 02.03.2016 / 04:56

1 resposta

4

Para acrescentar barras finais aos diretórios, basta revisar seu código para incluir a opção -F , em _tree.sh :

tree -F -L 2 --charset ascii -I "_tree.sh|LICENSE|README.md|node_modules|nbproject"

Explicação

O programa tree (por exemplo, versão 1.7.0) não anexa barras à direita por padrão. Como a @steeldriver aponta, isso pode ser devido apenas à opção -F ativada em algum lugar do sistema, como ~/.bashrc ou ~/.bash_aliases definido como um alias, o que faz com que você veja barras finais ao executar tree no terminal. Para ter barras no final dos scripts, simplesmente adicione a opção -F ao seu comando tree .

    
por 02.03.2016 / 05:12

Tags