Я не знаю, если ls
предоставляет опцию для этого, и я не смотрел его. Поскольку этот вопрос конкретно не требует очень быстрого или эффективного с точки зрения вычислений решения, я рекомендую синтезировать команду, используя ls
и sed
:
ls "$dir" | sed -z 's/\n/ /g'
. Требуется вывод ls
и замена. все новые строки \n
с пробелами. Переключатель -z
необходим, потому что в противном случае sed
будет работать с ориентацией на строки, а средство сопоставления с шаблоном sed
никогда не увидит \n
. У вас возникнет проблема, если одно из ваших имен файлов в $dir
будет содержать пробелы.
Если важна вычислительная эффективность, я рекомендую поискать такую опцию (man ls
) или написать программу, которая делает именно это (используя, например, язык C
).