シェルに関しては比較的基本的なポイントを見落としているのではないかと思います。 lsからの出力 コマンドはデフォルトで出力を改行で区切りますが、シェルは出力を1行で表示します。
誰かが私にこれを説明できますか?出力は単にスペースで区切られているといつも思っていましたが、出力が改行で区切られているので、出力は別々の行に表示されると思います。
例:
[email protected]:~/lpi103-4$ ls text*
text1 text2 text3
od 出力が改行で区切られていることを示しています:
[email protected]:~/lpi103-4$ ls text* | od -c
0000000 t e x t 1 n t e x t 2 n t e x t
0000020 3 n
0000022
改行が存在する場合、出力が次のように表示されないのはなぜですか。
text1
text2
text3
承認された回答:
出力をパイプするとき、ls
動作が異なります。
この事実は情報ドキュメントに隠されています:
標準出力が端末の場合、出力は列(垂直方向にソート)になり、制御文字は疑問符として出力されます。それ以外の場合、出力は1行に1つずつリストされ、制御文字はそのまま出力されます。
それを証明するには、実行してみてください
ls
そして
ls | less
つまり、出力がパイプ処理されているかリダイレクトされているかに関係なく、出力が1行に1つのファイルであることを保証する場合は、実行する必要があります
ls -1
(-1
ナンバーワンです)
または、ls | less
実行して列に出力するには
ls -C
(-C
大文字ですC)
印刷されない文字が含まれているファイル名のファイルを削除するにはどうすればよいですか?
Ssh $ host$fooとSsh$host“ sudo Su User -c $ foo”タイプコンストラクトで引用しますか?