- ベストアンサー
「Perlスクリプトを使ってCD→特定のDirectoryにコピー」する方法
LINUX環境で CDに入っている「Perlスクリプト(AA.pl」を実行すると、CDに入っている他のDirectory構造(DirA)を丸ごと指定したDirectory(DirB)にコピーすることは可能でしょうか。インストーラみたいなものを作ろうと思いますがその方法が分かる方教えてください。 つまり、 (1)CD-ROMのAA.pl実行 (2)CD-ROM/DirA (3)/home/usr/userA/DirBにDirAをCopy したいです。 以上宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
PostgresSQL サーバと言ってもOSは何でしょう? UNIX系OSならPerlが最初からインストールされている可能性はありますが、必ず入っているという保証はありません。 UNIX系OSで一番入っている可能性が高くてCPUに関係なく同じように書いて実行できるものは /bin/sh のスクリプトです。(bashは分かりません。古いOSにはないかも知れません)。 ということで、普通にシェルスクリプトで cp -r か tar でコピーすればいいんじゃないでしょうか。(シンボリックリンクを含む場合は tar を使って ( cd $srcdir && tar cf - . ) | ( mkdir -p $dstdir && cd $dstdir && tar xf - ) のようにやった方がいいです。古い cp はシンボリックリンクをシンボリックリンクのままコピーする機能がないかも知れないためです).
その他の回答 (3)
- Tacosan
- ベストアンサー率23% (3656/15482)
なんというか, bash でスクリプト書けばいいのにと思ってしまう....
- ibayac
- ベストアンサー率75% (6/8)
■カレントディレクトリを変更するには chdir("d:/work/test") or die; ■ファイルをコピーするには # PerlScriptの先頭に以下の1行を書く use File::Copy; # コピーしたいタイミングで以下を書く copy( $from_file, $to_file ) or die; ※ファイル名などは適当に変更してください。
- Ethersky
- ベストアンサー率71% (168/235)
モジュールFile::Copy::Recursiveあたりを使えばら楽できそうですね。 http://search.cpan.org/~dmuey/File-Copy-Recursive-0.16/Recursive.pm ただ、Perlでインストーラーのようなものを作るというのもどうかと思いますが・・・。 「そのマシンにPerlが入っていないと動けない」とか「標準モジュール以外のモジュールを使った場合にそのマシンに入っていなかったら動けない」なんていう問題もありますし。(前者はLinux環境では大抵Perlはインストール済みの場合が多いので心配は少ないですが)
補足
ご回答有難うございました。 実はファイルコピーをした後、PostgresSQL サーバーを起動して(起動されてない場合)、テキストファイルに入っているSQL文を実行してデータベース生成及び、テーブルを作る必要がありますが、Perlだけでは無理でしょうか。今、気になっているのはPostgreSQLサーバーをPerlで起動させるのが出来るかどうかですが、これは出来るのでしょうか。 ご指導宜しくお願いします。
補足
ご回答有難うございます。 PostgresSQL サーバはLinuxにインストールされていると仮定します。 また一つ気になっていることがありますが、CD-ROMに入っているシェルスクリプトを実行することは可能でしょうか。CD-Rのファイルは読み込み専用になっているのでそのままではシェルの実行ができないのではないかと思いますが、ご存知でしたら教えてください。 宜しくお願いします。