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で質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxのtarコマンドで同一ディレクトリに解凍するコマンドは何でしょうか? 1 2022/04/25 12:59
- Android tar.ファイルのインストールについて知りたいです 2 2022/07/23 15:34
- UNIX・Linux cpio使ってた人はtarが流行りだしてから焦ったり驚いたりしたか 1 2023/05/07 10:10
- UNIX・Linux VirtualBox ゲストOSにPC内蔵HDDのパーティションをマウントする方法は? 2 2023/05/06 22:52
- UNIX・Linux Linux(Fedora30)のブートディスクの交換について 2 2023/05/16 13:17
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- Windows 10 VirtualBox 7のゲストOSでの物理HDDパーティションのマウント方法 2 2023/05/04 13:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dirコマンドでフォルダ内ファイ...
-
テキストファイルから最終行の抽出
-
ラズパイで『’test.service’をs...
-
コマンドプロンプト dir でのソ...
-
Windows7 zip圧縮・解凍のコマンド
-
Linuxで標準出力したファイルの...
-
ネットワークプリンターにファ...
-
ピクチャクリッピングのファイ...
-
ファイル名についている「-」と...
-
TeXでの見出しの変更は可能でし...
-
xcopyのエラー情報のはき...
-
ftpコマンドで丸ごとダウン...
-
CUIとGUIのコピー速度の違いは?
-
fasta形式のファイルのまとめ方...
-
ファイルが消せない、移動でき...
-
ファイル名一覧の印刷
-
batファイルの強制終了を回避し...
-
アクセスアプリケーション実行...
-
数字を複数回繰り返す正規表現...
-
Linux(CentOS6.10)での起動エラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dirコマンドでフォルダ内ファイ...
-
テキストファイルから最終行の抽出
-
ファイル名についている「-」と...
-
ラズパイで『’test.service’をs...
-
Linuxで標準出力したファイルの...
-
win11のエクスプローラーの右ク...
-
ファイル名一覧の印刷
-
DOSコマンドのFOR文で空白を含...
-
DOS コマンドの~zfの意味を教え...
-
xcopyのエラー情報のはき...
-
batファイルの強制終了を回避し...
-
oracleの文字コードとlinuxサー...
-
特定の更新日付のファイルのみ...
-
「Vmmem」のメモリ使用量が高い...
-
ファイル名の -(ハイフン)を _(...
-
バッチファイルでのzip形式フォ...
-
TeXでの見出しの変更は可能でし...
-
数字を複数回繰り返す正規表現...
-
CUIとGUIのコピー速度の違いは?
-
ネームサーバーがうまく動きません
おすすめ情報