2017-02-14 94 views
0

在Windows命令提示,dir /b > List.txt打印的目录中的内容断行分隔的列表到文本文件:精确击等效CMD DIR/B

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 

击似乎并没有默认打印条目自己的路线,既不ls -h也不ls -1似乎对这个有什么区别。另外,看到-a选项后,我担心显示的结果是什么 - 我是否需要拨打-a来查看所有通常会在CMD中使用dir /b显示的结果,或者只是查看那些我不会看到的结果在CMD

我该怎么做Bash中dir \b的确切等价物?

+1

与'dir'内置于'cmd'不同,'ls'命令不是'bash'内置的。他们是两个不同的命令。另外Cygwin不是Linux。最后我不能重现这个问题。 'ls> File.txt'在Cygwin下为我列出每行一个文件。 'ls -1'也是如此。我的猜测是,你的问题是你正在使用记事本或其他一些不理解Cygwin使用的Unix风格行结尾(LF)的程序来查看输出,而是需要Windows风格的行尾(CF LF)。 –

+0

我正在用记事本查看它,所以这可能性很大。是否有'ls'的选项可以解决这个问题? – Hashim

+2

@Hashim:在输出文件上运行'todos'或'unix2dos'。 – choroba

回答

1

ls的输出重定向到File.txt将导致每行一个文件。因此,你的命令是正确的。您可以使用cat File.txt在bash上进行验证。

可能,您正在查看记事本上的输出文件。请在记事本++上查看,你会发现它是正确的。

0

ls输出不会转到终端,它显示每行一个文件,因此

ls > List.txt 

应该是正确的。

-a包括“隐藏”文件,即名称以点开头的文件。我不确定dir /b是否列出隐藏的文件。

ls -1应该每行列出一个文件。如果没有,请您发布操作系统的类型和版本,并输出ls --version

+0

在问题中增加了一些更多细节。我在Cygwin的Windows 7上使用'bash'。 Bash版本是4.4.12(3)。 'ls -1'适用于控制台,但输出到文件时不起作用。 – Hashim