2017-02-14 44 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