Не перечислять файл.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 интерпретирует как имя каталога, следовательно, вы получаете ошибку.

Другие вопросы по тегам