RedHatlinux AS3.0でperl内部でsystemコールでtarコマンドを
発行していますが
$result = system "tar czvf・・・ 1> /dev/null 2> /dev/null"
の結果として$resultの値に512という値が入ることがあります。
実際、tarファイルの作成には成功しているので0が返ってきて
それ以外をエラーとして判定するように期待していたのですが
上記の通りの値になってtar成功に関わらずエラーと判断して
しまいます。
この512というリターン値は何なのでしょうか?
なお、単純にsystemで簡単なtarをすると0で普通に返ってきたりします。またtar元はディレクトリ配下の複数のファイルを*で圧縮しようとしています。
No.3ベストアンサー
- 回答日時:
FreeBSDですが、
% perldoc -f system
すると、system関数のマニュアルが見られます。(Linuxにもあるんじゃないかな)
そのサンプルスクリプトでは、
printf "child exited with value %d\n", $? >> 8;
なんてしているので、exitステータスは、8bit shiftする(256で割る)
必要があるんですね。
# 検索すると同様の説明が他数あると思います。
>実際、tarファイルの作成には成功している
対象ファイルが全て入っていますか?
全ての対象ファイルが含まれていないtarファイルになっているんじゃないでしょうか。
ファイルリストを作ってtar の"-T"オプションで読み込むか、ディレクトリ名だけを指定するのが無難じゃないですかね?
>-T, --files-from F
> 抽出又は作成するファイルの名前をファイルFから読み込む
ありがとうございます。
tatsu99さんのアドバイスにもありましたが
ビットシフトしていたりしているのですね。
またishi7474さんの所でもファイルリストの
制限などの話も伺いまして、tarの指定の仕方などに
検討の余地がありそうです。
No.2
- 回答日時:
とりあえず、標準出力と標準エラー出力を/dev/nullに捨てずに、
何かのファイルに書いて原因をつきとめる必要があると思います。
よくあるケースとして、"tar czvf /dir1/*"等とした場合、/dir1
以下に存在するファイル数が多過ぎて、ファイルリストがシェル
のコマンドライン長の制限を越えることがあります(ワイルドカード
はtarコマンドに渡される前に、bash等のシェルがファイル名の
リストに展開します)。
そういう時は"tar czvf /dir1/"等と、ワイルドカードを使わない
指定を考えます。
ありがとうございます。
ファイルリストのコマンドライン長の制限はまったく
気がつきませんでした。
確かに数のあるディレクトリもあるので怪しそうです。
No.1
- 回答日時:
perlの場合、tarの戻り値を知るためには、systemのreturn値を256で悪必要があります。
従って512÷256=2ですので、tarの終了ステータスは2と言うことになります。tarの終了ステータスは、参考URLを参照下さい。
(但しHP-UX11.0ですので、linuxと同じかどうかの保証は私は出来ませんので、ご了承下さい)
参考URL:http://h50221.www5.hp.com/cgi/service/knavi/prod …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dirコマンドでフォルダ内ファイ...
-
数字を複数回繰り返す正規表現...
-
ごみ箱に入れるWindows コマン...
-
vimでの警告(読込専用ファイル...
-
ファイル名についている「-」と...
-
lsでは一画面ずつ表示できませ...
-
ファイル名一覧の印刷
-
DVDの中身を確認したい
-
knoppix内の操作による削除ファ...
-
保存したはずがエイリアスに?!
-
Excel VBA ファイルの置換確認...
-
DOSのバッチファイルでのヒアド...
-
テキストファイルから最終行の抽出
-
作成日時でのファイル検索
-
ピクチャクリッピングのファイ...
-
DUとLSの表示の差
-
SONYの音楽ソフト「x-アプリ」...
-
エクセルの表にヘンな枠が・・・
-
SPI非言語の問題 解説お願いします
-
ディスク上のサイズを確認する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dirコマンドでフォルダ内ファイ...
-
ファイル名についている「-」と...
-
ラズパイで『’test.service’をs...
-
テキストファイルから最終行の抽出
-
DOSコマンドのFOR文で空白を含...
-
DOS コマンドの~zfの意味を教え...
-
ファイル名一覧の印刷
-
数字を複数回繰り返す正規表現...
-
xcopyのエラー情報のはき...
-
Linuxで標準出力したファイルの...
-
oracleの文字コードとlinuxサー...
-
batファイルの強制終了を回避し...
-
コマンドプロンプト dir でのソ...
-
Windowsバッチファイルで、隠し...
-
ftpコマンドで丸ごとダウン...
-
ファイル編集について
-
作成日時でのファイル検索
-
特定の更新日付のファイルのみ...
-
ピクチャクリッピングのファイ...
-
ファイル名の -(ハイフン)を _(...
おすすめ情報