shell 脚本中的 tree 命令不会为目录附加斜杠

shell 脚本中的 tree 命令不会为目录附加斜杠

我有一个 shell 脚本执行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
$

当我直接执行命令时,

$ 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
$

/附加正斜杠( )。我怎样才能让_tree.sh文件做到这一点?

答案1

要为目录附加尾部斜杠,只需修改代码以包含该-F选项即可_tree.sh

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

解释

默认情况下,程序tree(例如版本 1.7.0)不附加尾部斜杠。正如 @steeldriver 指出的那样,这可能只是由于-F系统上某处启用了选项,例如在别名内~/.bashrc~/.bash_aliases定义为别名,这使得您在tree终端上运行时看到尾随斜杠。要在脚本中也包含尾部斜杠,只需-F在命令中添加选项即可tree

相关内容