Ваше регулярное выражение не работает, потому что .
не является символом слова. Grep считает символами слов только a-z
, A-Z
, 0-9
и _
.
В любом случае, это действительно неправильный способ. Во-первых, разбор ls
является очень хрупким и почти никогда не является хорошей идеей. Вот несколько других способов перечислить каталоги, имя которых начинается с .
:
find . -type d -name '.*'
Или, если вы не хотите, чтобы он спускался в подкаталоги (и если у вас есть GNU find
, по умолчанию в Linux):
find . -maxdepth 1 -type d -name '.*'
В качестве альтернативы вы можете просто использовать echo
и shell glob:
echo .*
Это также покажет файлы. Чтобы избежать этого, используйте цикл типа:
for i in .*; do [ -d "$i" ] && printf '%s\n' "$i"; done
Я бы сначала установил отсутствующие необходимые файлы.
sudo apt -получить установку libstdc++6
Если это не работает :
sudo add -apt -репозиторий ppa :ubuntu -набор инструментов -r/test
sudo apt -получить обновление
sudo apt -получить обновление
sudo apt -получить dist -обновление
Если это не сработает, отправьте сообщение об ошибке еще раз, так как что-то новое может быть расценено как отсутствующее.