• 締切済み

solaris7でのcompress

いつもお世話になっております。 solaris7のcompressコマンドについて質問です。 compressに -f のオプションをつけても、戻り値が2で返ってきてしまいます。(圧縮したファイルが圧縮前のファイルより容量が大きい場合)。 manでcompressコマンドを確認しても、オプションで -f を使用した場合は、戻り値が2で返ってくることはなさそうなんですが・・・・・。 > ls -l file.txt -rw-r--r-- 1 zz001 zz001 0 Mar 24 21:06 file.txt > > compress -cf file.txt > file.txt.Z > > echo $? 2 > > ls -l -rw-r--r-- 1 zz001 zz001 0 Mar 24 21:06 file.txt -rw-r--r-- 1 zz001 zz001 3 Mar 24 22:12 file.txt.Z  ちなみにwhichコマンドで/usr/bin/compressでした。  Solaris8では同様の処理をすると戻り値は0でしたが、どうにもわかりません。solaris7特有の動きなのでしょうか?

みんなの回答

  • 3899
  • ベストアンサー率54% (65/119)
回答No.2

ANo.1です。 やっぱり勘違いでした。 オプション指定してますね。 私のところはsol8の環境しかありませんが確かに0終了しています。 失礼しました。

saikichi
質問者

お礼

 こんにちは。  解決しそうにないので、シェル内で正常終了になるよう分岐させることにしました。  ご回答ありがとうございました。

  • 3899
  • ベストアンサー率54% (65/119)
回答No.1

こんにちは compress -cf file.txt の部分でfile.txt.Zが出来て > file.txt.Zでもう一つfile.txt.Zを作ろうとしているので ファイルが重複して0より大きな終了ステータスになっているのではないですか? 私の勘違いかな?

関連するQ&A

  • findとcompressについて

    OSはSolarisを使用しています。Verは2.6か8だと思います。 通常compress命令を使用するとファイルを圧縮できるというのは わかるんです。findが検索するという命令ということも分かっています。 findで検索したファイルを圧縮する命令をUNIXシェルの中に記述したと します。その際にfindで指定したファイルを圧縮するプログラムを作成します。 その時に、指定した条件でファイルが見つからなかった場合に、 compress命令を実行するとプログラムが止まってしまうんです。 通常、UNIXのプロンプト!?よりcompressを実行した場合にで 指定したファイルが存在しない場合には ”ファイルもディレクトリもありません”。と表示されますよね。 圧縮したファイルを指定した場合にも確かメッセージが返ってきた と思います。 ここで質問したいのは3点あります。 1.シェルの中に記述した場合、ファイルが存在しない場合には処理が止まって  しまうのか?(指定したフォルダにファイルが何にも存在しない場合) 2.compressのオプション(-fなど)で、ファイルが存在しなかった場合の  回避はできるのか? 3.その他の方法にてプログラムが止まることの回避はできるのか?  もしくはプログラム上にエラーがあるのか? ぜひ回答よろしくお願いします。

  • AIX kshスクリプトのtar+compressを1行で書く方法について

    こんにちは。はじめまして、hisatoと申します。 AIX kshスクリプトのtar+compressについて 質問がございます。 基本は下記の通りで問題なく完了するのですが、 # アーカイブ処理 tar -cvf - <固める対象のファイル名> | compress >圧縮ファイル名.tar.Z 下記の処理にすると、エラーが発生してしまいます。 tar -cvf - -L <固める対象のファイル名リスト> | compress >圧縮ファイル名.tar.Z tar: 次のフラグにはパラメータが必要です: L 使用方法: tar -{c|r|t|u|x} [-BdFhilmopsvw] [-Number] [-fFile] [-bBlocks] [-S [Feet] [Feet @Density] [Blocksb]] [-LInputList] [-NBlocks] [-C Directory] File ... -Lを使用する場合は、-オプションを使用して新規アーカイブ・ファイルを作成し、 そのアーカイブ・ファイルをcompressに渡すことはできないのでしょうか? 以上、ご教授お願いいたします。

  • Solaris10でのreadコマンドについて

    Solaris10を使用しています。 コマンドの実行結果をそのまま変数として使用するために 以下のスクリプトを実行したところ・・ -------------------- #!/bin/sh read a b c <<EOF `ls -l aaa.log` EOF echo $a echo $b echo $c -------------------- 「ls -l aaa.log」の結果は、-rw-r--r-- 1 root root 211 1月 13 11:58 aa.log となるので $a=-rw-r--r-- $b=1 $c=root という結果を期待していたのですが、「/tmp/sh*** cannot open!」とエラーとなってしまいます。***は任意の数字です。 /tmpには上記で cannot open! となった「sh***」よりひとつ若い番号のファイルが作成され、 中は「ls -l aaa.log」の結果が記載されていました。 CentOS5.2、Cygwinでは期待した結果が得られたのですが、SolarisではNGでした。 何かSolaris特有の問題でもあるのでしょうか?ご教示願います。

  • DUとLSの表示の差

    ファイルのパーミッション等が下記の場合が関係しているのか不明ですがDUコマンドとLSコマンドで示されるDiskの使用量が一致しないのですが、理由を教えていただけませんか? % cd test001 % ls -l total 944 -rw-r-lr-- 1 own grp 524288000 Oct 15 09:12 File0 -rw-r-lr-- 1 own grp 524288000 Oct 15 09:11 File1 % % du 946 . % cd ../test002 % ls -l total 2049056 -rw-r-lr-- 1 own grp 524288000 Oct 17 14:12 File0 -rw-r-lr-- 1 own grp 524288000 Oct 12 21:16 File1 % % du 2049056 . DUの結果とLS -l で示される結果は一致しているのですが、ファイルサイズ(ls -lで示される値)の合計と一致しないのです。 OSはSolaris8です、よろしくお願いします。

  • SolarisからWindowsへFTPするときのオプション

    Solaris8上でftpコマンドに関するのシェルを作成しています。 処理概要はSolaris上にあるファイルをWindwosのFTPサーバーに送信したいのです。そのFTP処理時、FTPの一連のコマンドを記入したテキストファイルを指定して実行したいのです。Windows上でバッチ処理をするときは、以下のように処理しています。  ftp -s:xxxx.txt  (ここでxxxx.txtには、ftpコマンドが記入) Solaris上でftpのオプションをmanで確認したいのですが、それらしきものがありませんでした。  よろしくお願いします。

  • Solaris10のホスト名の変更

    こんにちは。 8年振りにSolarisをさわっています。 Solaris10のホスト名の変更を行いたいのですが、Solaris9のテキストに6つのファイルをすべて変更する必要があると書いてありました。これはSolaris10でもそうなのでしょうか。確認したところ、/etc/nodenameというファイルはありませんでした。現在DHCP接続にしているのですが、それでもホスト名の変更は行えますか。 ご回答お待ちしております。 bash-3.2# ls -la /etc/nodename /etc/nodename: No such file or directory bash-3.2# ls -la /etc/hostname* -rw-r--r-- 1 root root 1 Dec 27 11:42 /etc/hostname.e1000g0 bash-3.2# ls -la /etc/inet/hosts -r--r--r-- 1 root root 101 Dec 27 11:49 /etc/inet/hosts bash-3.2# ls -la /etc/net/ticlts/hosts -rw-r--r-- 1 root sys 239 Jan 22 2005 /etc/net/ticlts/hosts bash-3.2# ls -la /etc/net/ticots/hosts -rw-r--r-- 1 root sys 239 Jan 22 2005 /etc/net/ticots/hosts bash-3.2# ls -la /etc/net/ticotsord/hosts -rw-r--r-- 1 root sys 239 Jan 22 2005 /etc/net/ticotsord/hosts bash-3.2# cat /etc/inet/hosts # # Internet host table # ::1 localhost 127.0.0.1 localhost 192.168.236.129 unknown # Added by DHCP bash-3.2#

  • tarと compressと  remshの組み合わせ

    HP-UXを使用しています。 tar と compress とremshを組み合わせて、 あるディレクトリ配下のファイルを、バックアップし、圧縮し、さらに別サーバに転送したいのです。 例えば、あるディレクトリを /etc/tmpとし、別サーバのIPアドレスをxxx.xxx.xxx.xxxとし、 別サーバの保存領域が/tmpとし、圧縮したバックアップファイル名をdummy.tar.Zとします。 このとき、 下のように打っても、tarのエラーがでます。 具体的には etc/tmp配下にファイルがたくさんあるのにもかかわらずファイルが見つかりませんのようなエラーがでました。 (...のようなというのは、今、家にいるため会社で昼間見たエラーメッセージを覚えていないのです) うってみた内容    tar cvf -etc/tmp | compress -c | remsh xxx.xxx.xxx.xxx dd of=/tmp/dummy.tar.Z  構文が違うのかと思い、いろいろ順序を入れ替え、やってみましたが駄目でした。 しかし、tarとcompressとremshを組み合わせ、対象ファイルをバックアップし、圧縮し、さらに別サーバに転送できると聞いたことがあるのです。(メリットは最初のサーバに大きな容量のバックアップファイルを残さないですむこと)  今日、三時間ほど試しましたが、できませんでした。  もし、皆さんの中でやられた方がいらっしゃいましたら教えてください。

  • " ls -l " から、指定縦列の中から、grepする方法

    SunOS 5.8 sun4u sparc UltraAX-i2 > ls -l -rw-r--r-- 1 root other 100 1月 1日 00:00 abc-1.txt -rw-r--r-- 1 root other 100 1月 1日 00:00 abc-2.txt -rw-r--r-- 1 root other 100 1月 1日 00:00 abc-3.txt -rw-r--r-- 1 root other 100 5月 11日 00:00 abc-11.txt -rw-r--r-- 1 root other 100 1月 12日 00:00 abc-12.txt -rw-r--r-- 1 root other 100 1月 13日 00:00 abc-13.txt -rw-r--r-- 1 root other 100 1月 1日 00:00 abc-5.txt -rw-r--r-- 1 root other 100 5月 1日 00:00 abc-6.txt -rw-r--r-- 1 root other 100 1月 1日 00:00 abc-7.txt -rw-r--r-- 1 root other 100 1月 1日 00:00 abc-51.txt -rw-r--r-- 1 root other 100 1月 1日 00:00 abc-61.txt -rw-r--r-- 1 root other 100 5月 1日 00:00 abc-71.txt ここから、" 5月 " のファイルのみを標準出力したいのですが、 日本語環境の不備から " ls -l | grep 5月 " のコマンドは刎ねられます。 ですので、策としては、以下のように ls -l ↓ 6列目(月列)を指定。 ↓ 5 を grep しなさい。 このように(sort +5)のような感じで、パイプをつなげたようなコマンドを用意したいのですが、 その機能が見つかりません。詳しい方、教えて下さい。 csh (bash使用可能) egrep,fgrep使用可能

  • コマンド アクセス権

    ファイル「report.txt」のアクセス権を -r--r----- に設定せよ。変更されたことを確認せよ。その後、元(-rw-r--r--)に戻し、再び確認せよ。 で、答えは次のようになるのですが、まったくわかりません。 chmod 440 ~/it1/report.txt ls -l ~/it1/report.txt chmod 644 ~/it1/report.txt ls -l ~/it1/report.txt rwxrwxrwx どうしたら、良いでしょうか。また、440とかの意味も教えてください。 421421421

  • solarisのファイル名に特殊キー

    solarisのファイルを作成したときに、 シングルモードで起動していたため、入力ミスをしたときにbackspaceキーを 入力しました。 lsコマンドでファイルを調べると修正した名前なのですが、 rmコマンドでは削除ができません。 特殊キー(^H)を表示されるコマンドはありますか?