由于某种原因,当我执行此脚本时,我创建的文件.gitkeep
未显示在树输出中,并且我对字符集的 UTF8 声明也是不正确的。
这是我当前的脚本代码:
#!/bin/bash
echo "Type in directory path to tree"
read directoryPath
tree -a -l -f -L 5 -P --charset UTF8 -h --device --dirsfirst -C $directoryPath
这是我的命令和输出
root@selector:/var/www/selector-skeleton-application# ./scripts/tree-directory.sh
Type in directory path to tree
/var/www/selector-skeleton-application/lib/pluto/src
/var/www/selector-skeleton-application/lib/pluto/src
0 directories, 0 files
但是,这里是一般的目录列表命令输出
root@selector:/var/www/selector-skeleton-application# cd lib/pluto/src/
root@selector:/var/www/selector-skeleton-application/lib/pluto/src# ll
total 8
drwxr-xr-x 2 root root 4096 Feb 6 01:06 ./
drwxr-xr-x 4 root root 4096 Feb 6 01:01 ../
-rw-r--r-- 1 root root 0 Feb 6 01:06 .gitkeep
root@selector:/var/www/selector-skeleton-application/lib/pluto/src#
最后,这也显示在我创建的脚本的输出中:
UTF8 [error opening dir]
答案1
这个特定的选项组合:-P --charset UTF8
没有意义。-P
用于设置目录的模式,tree
应该打印:
-P pattern
List only those files that match the wild-card pattern.
您已将模式设置为--charset
,.gitkeep
当然,这并不匹配。这留下了UTF8
一个非选项参数,它tree
会被解释为目录名称,因此您会收到错误。