Задать вопрос
berezuev
@berezuev
#define TRUE FALSE

Консоль: как вывести файлы с пробелами?

наверное, вопрос уже избитый, но все же, я не нашел нормального решения.
Есть папка, в которой есть файлы с названиями на русском, и с пробелами (и другими спецсимволами терминала) в названиях.
ls -1
работает нормально

for name in `ls -1`; do echo $name;done;
выводит все кусками.

Как это исправить?
  • Вопрос задан
  • 159 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
DevMan
@DevMan
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for name in `ls -1`; do echo $name;done;
IFS=$SAVEIFS
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
можно просто `ls -1` и $name обернуть двойными кавычками:
for name in "`ls -1`"; do echo "$name";done;
Ответ написан
Комментировать
@azazelpw
Linux SA
запишите в файл результаты
#!/bin/bash
path=/home/user
ls -1 $path > /var/log/list.log
for name in `cat /var/log/list.log`;
do
echo $name;
done
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы