7
爲什麼會出現這兩種命令之間的輸出差:爲什麼`ls |貓`!=`ls`?
ls | cat
ls
第一個似乎與換行分開的文件名。
這也適用於命令suc有ls > outfile
和類似的東西。
我在Mac OSX上,如果這有什麼區別。
爲什麼會出現這兩種命令之間的輸出差:爲什麼`ls |貓`!=`ls`?
ls | cat
ls
第一個似乎與換行分開的文件名。
這也適用於命令suc有ls > outfile
和類似的東西。
我在Mac OSX上,如果這有什麼區別。
ls
命令檢查其標準輸出的文件類型。如果它檢測到「tty」,它會發出多列輸出。如果它檢測到任何其他文件類型(如磁盤文件或管道),它將發出單列輸出。
Tty是電傳打字機的縮寫。在過去,您可以使用實際的電傳類型與Unix系統進行交互。所以如果標準輸出是電傳打字機,ls
會產生爲人類優化的輸出。否則,它會產生爲程序優化的輸出。隨着其他運行交互式shell的方式(如telnet會話和窗口系統)的出現,Unix的作者創建了僞電傳類型或「pty」,這是一種純軟件「設備」,它僞裝成電傳。一個程序(如telnet服務器,ssh服務器或終端窗口)可以使用pty使另一個程序(shell)認爲它正在與電傳打字。
您可以使用-C
標誌強制ls
發出多列輸出。您可以使用-1
(數字一)標誌強制單列輸出。
+1,但我認爲你的意思是'-1',而不是'-x',強制_single_-column的輸出; '-x'仍然會產生_multi_-column輸出,但是「輸入的是排序的列,而不是列的列。」 - http://man.cx/ls – mklement0
@ mklement0謝謝。我糾正了我的答案。 –