2017-02-14 16 views
0

В командной строке Windows, dir /b > List.txt печатает LineBreak список разделенных содержимого каталога в текстовом файле:Exact Bash эквивалент для CMD реж/б

Folder 1 
Folder 2 
Folder 3 
File 1.txt 
File 2.txt 
File 3.txt 

В bash на Cygwin, делая ls > File.txt производит следующее:

Folder 1Folder 2Folder 3File 1.txtFile 1.txtFile 2.txt 

Bash, кажется, не по умолчанию к записям печать на их собственной линии, и ни ls -h, ни ls -1, кажется, никакой разницы в этом. Кроме того, видя -a, меня беспокоит, какие результаты показываются - мне нужно позвонить -a, чтобы увидеть все результаты, которые обычно показывались бы с помощью dir /b в CMD или просто чтобы увидеть те, которые я бы не видел в CMD?

Как сделать точный эквивалент dir \b в Bash?

+1

В отличие от того, как 'dir' встроен в' cmd', команда 'ls' не встроена в' bash'. Это две разные команды. Также Cygwin не Linux. Наконец, я не могу воспроизвести проблему. 'ls> File.txt' перечисляет один файл в строке для меня под Cygwin. Так делает 'ls -1'. Я предполагаю, что ваша проблема заключается в том, что вы просматриваете вывод с помощью Notepad или какой-либо другой программы, которая не понимает окончание строк в стиле Unix (LF), которое использует Cygwin, и вместо этого ожидает окончания строки в стиле Windows (CF LF). –

+0

Я просматриваю его с помощью Блокнота, так что это вероятная возможность. Есть ли опция для 'ls', которая может обойти это? – Hashim

+2

@Hashim: запустите 'todos' или' unix2dos' в выходном файле. – choroba

ответ

1

вывод перенаправления ls в File.txt будет отображаться в одном файле в одной строке. таким образом, ваша команда верна. вы можете проверить это на bash, используя cat File.txt.

Возможно, вы просматриваете выходной файл в блокноте. просмотрите его на блокноте ++, и вы увидите, что это правильно.

0

При выходе ls не идет к терминалу, он отображает один файл в каждой строке, поэтому

ls > List.txt 

должен быть правильным.

-a содержит «скрытые» файлы, то есть файлы, имена которых начинаются с точки. Я не уверен, содержит ли dir /b скрытые файлы или нет.

ls -1 должен содержать список по одному файлу в строке. Если это не так, не могли бы вы указать тип и версию вашей ОС и вывод ls --version?

+0

Добавил несколько вопросов к вопросу. Я использую 'bash' в Windows 7 с Cygwin. Версия Bash - 4.4.12 (3). 'ls -1' работает для консоли, но не влияет на вывод файлов. – Hashim