-L
разбивается по строкам; echo
выводит не выводимые строки, а пробелы, поэтому запускается один ls -l
, который форматирует все столбцы как группу.
-n
разбивается по параметрам; в отсутствие -L
или -0
разделителем является пробел (возможно, измененный в кавычках), поэтому каждое имя файла получает свой собственный ls -l
прогон, и независимые прогоны не могут координировать ширину столбцов.