bshでls結果が途中で途切れる現象の解決方法は?

このQ&Aのポイント
  • HP-UXでbshを使用してls結果をファイルに出力する際に、途中で結果が途切れる現象が発生しています。lsコマンドの実行結果は正常で、ファイルには全結果が出力されることもあるため、原因がわかりません。
  • ls実行の際には特にエラーが表示されず、シェルのログファイルでも正常終了しています。ls対象のディレクトリはrootではなく、全てのファイルのパーミッションは755です。
  • ls結果ファイルの出力先ディレクトリのディスク残容量も十分にあり、出力されるファイルのサイズは通常約19Mですが、途中までの場合は約4Mとなっています。同じコマンドを手動で実行した場合は問題なく全結果が出力されています。
回答を見る
  • ベストアンサー

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)の昼過ぎに取引先へ原因報告を求められ、焦っております。 以上の様な状況です。 ご経験のおありな方をはじめ皆さま、どうか御教示ください。 宜しくお願い致します。

noname#133986
noname#133986

質問者が選んだベストアンサー

  • ベストアンサー
  • memphis
  • ベストアンサー率40% (975/2395)
回答No.1

症状から考えるとlsで落ちているのでしょうね。 原因を調べるならデバッガを使うしかないと思います。 ちなみに使っているlsのバージョンは? 最新版なら6.9だったと思います。

noname#133986
質問者

お礼

その後の調査の結果、shellが終了した直後(まだ約19M分のls 結果がファイルに出力され切る前に)検証担当者がls結果出力ファイルをコピーしていた為、ls 結果が途中で途切れていることが判明しました。 非常にお粗末な結果で大変お恥ずかしいです・・・。 ご丁寧に相談にのって下さり、ヒントまで、有難うございました。

noname#133986
質問者

補足

私の拙い質問にお応え下さり、有難うございます。 正直にお伝えします。 お恥ずかしながら、unix で /bin/ls --version と叩いても、オプションがイリーガル云々としてエラーになってしまい、lsのバージョンを確認・お使いする以前の状態です。 大変お手数ですが、コマンドからご教示いただけないでしょうか。 お願いします。

関連するQ&A

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

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

  • lsコマンドについて。

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

  • lsでのファイル名・パスのフルパス取得

    環境:Solaris10 lsコマンドでディレクトリ、ファイル名の一覧を取得しようとしています。 条件としては 1.対象は全てのディレクトリ・ファイル(ls -R) 2.実行結果はアクセス権・所有者の情報も含む(ls -lの結果のような) 3.ディレクトリ・ファイル名ともにフルパスで表示 この上記3点を満たそうとして、 ls -dlR / と実行してみましたが、この場合Rスイッチが有効になりませんでした。 OS標準コマンドでこの3点を満たすことは出来るのでしょうか?

  • meadow で ls をすると1列に出力される

    Meadow3でシェルを起動して、lsコマンド(オプションなし)をすると、1列で出力が表示されます(" ls -1 " とした感じ)。これは、何が原因なのでしょうか? ちなみに、cygwinでは、通常のように出力されます。

  • Linuxで標準出力したファイルの文字コードついて

    Linuxで2つのディレクトリの内容をtreeコマンドでそれぞれファイルに出力して、 その2つのファイルをdiffで比較して、その結果をファイルに出力するシェルを作成しました。 比較対象のディレクトリの内部には日本語でファイル名やディレクトリ名を付けているものもあります。 このシェルを手動で実行してファイルに出力された内容を確認すると、 日本語であるべきところは日本語で出力されています。 nkfコマンドでファイルの文字コードを確認すると「UTF8」となっています。 しかし、cronにてこのシェルを実行してファイルに出力された内容を確認すると 何故か日本語の部分が化けて(ASCIIのようです)しまいます。 nkfコマンドでファイルの文字コードを確認すると「ASCII」となっていました。 cronで実行した場合にも出力するファイルの文字コードを「UTF8」にしたいのですが どいうすればよいでしょうか? どなたかご教授願います。 よろしくお願いします。

  • ls であるファイル以外を表示したい

    RH7.3です。 あるディレクトリ配下に多数のファイルがそんざいするのですが、 そのディレクトリで「ls」をしたときに"access_log"というファイル以外を表示させたいです。  ls [!a]* でやったのですが、access_logの他に access_log.1などがありそれも含まれてしまいます。 何かいい方法はないでしょうか? できれば、ls コマンドひとつで処理したいと思っています。(正規表現で対応?)

  • サブディレクトリも含めて最新のファイルを調べる

    Linux 上のあるディレクトリ配下に存在するすべてのファイルの中で(サブディレクトリ配下も含めて) 更新日時が最新のファイルを抽出したいのですが やり方をご存知であれば教えてください。 ディレクトリが一つだけ or 対象が特定できるなら ls -lrt とかで分かりますが 再帰的にすべてのサブディレクトリを対象としたいのです。 できれば1回のコマンド(ワンライナー)で実行できるとありがたいですが、 それはさすがに大変な気がしますので、 あくまでできればということで。。

  • findの結果をlsで詳細表示

    はじめまして。 Linux初心者です。 カレントディレクトリ以下のディレクトリやファイルの一覧を詳細表示するには「find ./ | xargs ls -lF」などとすると思いますが xargsを使用せずに「find ./ | ls -lF」とすると、なぜNGなのでしょうか。「xargs」の意味を調べると、 (1) 標準入力から空白か改行で区切られた文字列群を読み込む。 (2) xargsの引数のコマンドの後ろに、標準入力から受け取った文字列群を付け足して、そのコマンドを実行する。 とありました。上記の説明で「xargs」を付けることによる効果はわかるのですが、ls以外のコマンドを使用する際にもfindと組み合わせる際には、 すべてのコマンドで「xargs」を使用しなければいけないのでしょうか。 lsの結果をmoreする際などには、「ls | more」で良いと思うのですが、 「ls | xargs more」としない理由がわかりません。 どなたかわかりやすく教えて頂ければ幸いです。 よろしくお願いします。

  • `ls`標準出力はどこにいった?

    質問が続いて恐縮なのですが、お願いします。 perlスクリプトでshellコマンドを呼び出したとき、 (以下、#!/usr/bin/perl は省略) $y=`ls`; print $y; では結果がターミナルに表示される print `ls`; でも表示される しかし、単に `ls` では何も表示されない。 `ls`; print $_; でも何も表示されない。 `ls [存在しないファイル]` では標準エラーが表示される。 いったい `ls` の標準出力はどこに格納されるのでしょうか?

    • ベストアンサー
    • Perl
  • ディスクの使用サイズ表示の違い

    UNIXコマンドであるディレクトリ配下のディスクの使用サイズを表示させようと思っています。 ・du -k ・find -lsでファイルサイズを足す(ファイル、ディレクトリ、シンボリックリンクを含む) ・ls -Rでファイルサイズを足す(ファイル、ディレクトリ、シンボリックリンクを含む) 上記3つで行いましたが、全て違う結果になりました。 なぜこの様な事になるのでしょうか? よろしくお願いいたします。