• 締切済み

lsコマンドについて。

lsコマンドについて。 $lsを実行したときに、結果は各ファイル名が改行で区切られて出力されると思うのですが、コンソールにはスペースかタブで区切られているように表示されます。 これはシェルがlsコマンドの結果に含まれる改行をスペースなどに変えてコンソールに出力しているからなのでしょうか。 よろしくお願いします

みんなの回答

  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.2

違います。 ls のオプションで、1ファイルずつ改行で区切るか、スペースで区切って1行に複数ファイル名を表示するか決まります。 ls -1 ls -C ls -x デフォルトは、出力が端末の時は -C 、出力が端末以外(ファイルとかパイプとか)の時は -1 です。

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

lsコマンド自身が、 ・出力がコンソールの時→ファイルを横に並べて表示 ・出力がファイルへのリダイレクトの時→改行で区切って1行1ファイルで出力 するようになっています。 オプションを明示してやれば、 「ls -1」とすれば、1行1ファイルで表示されますし、 「ls -C > hogehoge.txt」とすれば、1行に複数ファイルが記述された状態でファイルに出力されます。

関連するQ&A

  • コマンド(例えばls)の出力結果を文字列で取得するプログラムの作成方法

    はじめまして。 Linux(ディストリビューションは問わず)で コマンド(例えばlsコマンド)を実行して その出力結果を文字列で取得するプログラムを作成したいです。 コマンドの実行はsystem()で可能なのかな?と思っていますが、 コンソールに出力される内容はどのように取得して良いのか分かりません。 詳しい方がおりましたらご教授お願い致します。

  • nslookupでlsの結果をファイルに出力

    Solaris8を使用しています。 nslookupでlsの結果をファイルに出力したい場合、例えば % nslookup > ls -d ドメイン名 > 出力ファイル名 とすればいいのはわかりますが、これをシェルで自動化しようと思うとうまくいきません。 シェルスクリプト内に、 --------------------------------------------- nslookup ls -d ドメイン名 > 出力ファイル名 exit --------------------------------------------- または、 --------------------------------------------- nslookup > 出力ファイル名 ls -d ドメイン名 exit --------------------------------------------- としてもうまくいきません。 または対話形式ではなく、nslookupに引数を渡してlsの結果を得ることが可能であれば何とかなると思うのですが・・ もしご存知の方がいらっしゃいましたらご教授お願いします。

  • killコマンド実行時のメッセージを出力させないためには?

    あるシェルスクリプトを実行させているところに、killコマンドを送り込むと、コンソールに「終了しました」と表示されてしまうのですが、これを表示させないようにすることはできますか??? kill 100 > 2>&1 > aaa.txtなどとしてもファイルに書き込まれないので、標準出力でも標準エラー出力でもないのでしょうか?

  • bshでのls結果出力内容が途中で途切れる

    初めて質問いたします。 皆さま、どうぞ宜しくお願い致します。 OSはHP-UXで、とあるディレクトリ配下の ls 結果をリダイレクトでファイルに出力させるbshでの話です。 この出力結果ファイルですが、ls -lR で指定したディレクトリ配下すべてを出力する時と、途中までのみ出力される現象が発生しました。 ●シェルのログファイルでは、lsコマンドの実行結果(戻り値)はいずれもゼロ(正常) ●シェルをキックした際、終了すると画面には何らかのメッセージ出力なくプロンプトが表示 ●同じコマンドを手で発行した場合、ファイルには常にls結果が全出力される ●シェルはrootでキック ●ls対象ディレクトリ、ファイルのオーナーはrootではない ●ls対象ディレクトリ、ファイルのパーミッションは全て755 ●ls結果ファイルの出力先ディレクトリのディスク残容量は約32G ●ls結果ファイルのサイズは、全て漏れなく出力された場合は約19M、途中まで出力の場合は約4M 私自身、SHELLの経験値が浅く、基礎的な話でしたらお恥ずかしい限りです。 周囲の経験者の方々にも伺いましたが、私の説明不備でしょうか、解答がみつかりません。 こちらに既存で類似質問がなく、WEBで調べましたがわからず質問させて頂きました。 実は、本日(6/2)の昼過ぎに取引先へ原因報告を求められ、焦っております。 以上の様な状況です。 ご経験のおありな方をはじめ皆さま、どうか御教示ください。 宜しくお願い致します。

  • lsコマンドでforkできない

    Vine6.0の載ったマシン(node1とする)をlogin shellをzshにして使っています。 teratermなどを使って、node1にsshでログインし、lsコマンドを使用すると、 ls: fork failed: リソースが一時的に利用できません というメッセージが出て、lsが失敗します。zshをもう一度子シェルとして実行すると、 解決します。 他のコマンドは問題なく使えているので、lsが悪いのか、zshが悪いのかだと思うのですが、 理由はわかりますでしょうか? よろしくお願いします。

  • UNIXのコマンド教えて下さい。

    UNIXで、lsの結果をファイルに出力する際、 ls > aaa.txtのようにすると出来ますが、 実行したコマンド "ls -la > aaa.txt" もファイルに出力させたいのですが、どうすれば出来ますか? 知ってる方教えて下さい!

  • lsコマンドの色設定が反映されない

    OSにCentOS5.7、シェルはtcshを利用しています。よろしくお願いします。 lsコマンドで表示されるファイルの色分けを変更するために、 ホームディレクトリに以下の設定ファイルを作り(~/.dir_colors)、 ######## .dir_colorsの中身 ################### NORMAL 32 FILE 32 DIR 34 OTHER_WRITABLE 32 .txt 31 ########################################### > eval `dircolors ~/.dir_colors -c` として設定を反映させたつもりだったのですが、 実際にlsを実行してみると、いくつかの.txtファイルのうち、 ちゃんと赤色(31)で表示されるものと、緑色の太字(32;01)で表示されるものがありました。 >ls -l として、実行権限を調べると、 実行権限のないテキストファイル(-rw-r--r--)が赤字で表示され、 実行権限つきのテキストファイル(-rwxr--r--)が緑太字で表示されていました。 ================================================================================ 実行権限の有無で、.dir_colors内の記述が反映される・されない、ということはあるのでしょうか? (緑太字(32;01)はそもそも.dir_colors内に記述していないのですが、lsで表示されてしまいます。) 権限の有無に関わらず、同じ拡張子名に同じ色を当てたいのですが、良い方法があればご教授お願いします。 ================================================================================

  • ftpコマンド出力結果の取得

    ftpコマンドのバッチ処理によってファイルの一覧の結果を取得したいのですが、 リダイレクション等を用いても取得できません。 どのようにすればいいか教えてください。 **************状況************* OSおよびOSレベル:AIX5.2 シェル:Kシェル コマンドファイルの中身(ftp.txt) cat << EOF | ftp -n open SERVER user USER PW cd PATH ls -l bye EOF SERVER:実際のサーバー名 USER:実際のユーザー名 PW:実際のパスワード PATH:実際のパス これを以下のように実行し、結果を取得しようとしました。 # ./cmd.ftp > log しかし、出力ファイルlogの中身はカラっぽでした。 ところが、リダイレクションを外し、コマンドファイルのみを実行すると、結果が画面に表示されます。 何故、画面には表示されるのに、リダイレクションやパイプでは結果が渡されないのかが分かりません。

  • Cygwinのlsコマンドについて

    Cygwinの場合、以下のオプションでlsコマンドを実行すると $ ls --full-time -rwxr-xr-x 1 aaaa なし 139 2006-08-23 15:01:34.203125000 +0900 ls.sh と表示されます。 Linux(redhat)上で同様のコマンドを実行すると、 $ ls --full-time -rwxr-x--- 6 root root 4096 Wed Aug 09 16:59:03 2005 ls.sh と表示されます。 タイムスタンプの表示形式が異なっていますが、 Cygwin上で、Linuxのような表記をしたいのですが、 可能でしょうか。ご教授お願い致します。

  • ls -lコマンドで表示される合計って?

    ls -lコマンドを打ったときに、その出力結果として、先頭行に ”合計 ”と表示されますが、これは何の合計なのでしょうか? 教えてください。