Проблема решена следуя инструкциям из здесь
В основном кажется, что мне нужно установить вот это
Поскольку парень на форуме утверждает, что более новые версии не будут работать. После этого я смог добавить арабский
Нажмите кнопку "Добавить" (+) ... выделите пункт "Раскладки клавиатуры" и нажмите кнопку "Добавить". (Вы увидите, что возле ваших часов появится флажок) нажмите кнопку кнопку "Закрыть".
И мне пришлось перезагрузить компьютер. Возможно, выход из системы/вход в систему сработал бы, но я сделал перезагрузку.
-printf "%'d"
здесь ничего не делает, поэтому счетчики получаются равными 0, вместо этого вам нужно изменить его с помощью -printf "%p\n"
.
Вам необходимо изменить свои команды на следующую форму:
directories=$(printf "%'d\n" $(find "$1" -type f | wc -l))
printf
использует разделитель тысяч для вашей текущей локали, который может быть запятой, точкой или вообще ничего. Вы можете изменить язык, если хотите использовать запятые.
Также можно сделать так:
if [ -d "$1" ]; then
directories=$(find "$1" -type d | wc -l)
files=$(find "$1" -type f | wc -l)
sym=$(find "$1" -type l | wc -l)
и заменить echo
на printf
#Printing the output to the terminal
printf "%s %'d\n" "Directories" $directories
printf "%s %'d\n" "Files" $files
printf "%s %'d\n" "Sym links" $sym
Произошла ошибка, потому что вы перепутали две разные команды - bash'овскую printf
и find -printf
.
Для находки -printf
формат "%'d"
неверен. Исключительные кавычки не допускаются, а %d
— это глубина файла в дереве каталогов. Вы можете найти все параметры -printf
в man find
, набрав: /printf format
.
Кстати, нужно было добавить \n
к обоим printf
(bash и find): "%d\n"
, иначе они будут вывести весь вывод в одну строку.