未在树列表命令中列出 .gitkeep 文件,并且无法识别字符集

未在树列表命令中列出 .gitkeep 文件,并且无法识别字符集

由于某种原因,当我执行此脚本时,我创建的文件.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会被解释为目录名称,因此您会收到错误。

相关内容