• ベストアンサー
  • すぐに回答を!

linux(redhat)ファイルシステムの復旧について

お疲れ様です。 Linux(redhat)環境で、あるフォルダ配下をフォルダごとルート直下に移動しようとして以下のmvコマンドを投入しました。 >mv /opt/xxx/test /* コマンドの指定方法に誤りがあったのか、この後lsなどのコマンドが効かなくなってしまいました。 >/bin/ls:そのようなファイルやディレクトリはありません cdコマンドで/opt配下には移動はできるのですが、/binなどは壊れてしまったのか、移動もできません。 /bin配下のコマンドが効かず何もできない状態なのですが、何とか復旧させる手段はないでしょうか。OSを再インストールするしかないでしょうか。 ご存じの方おりましたらよろしくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数503
  • ありがとう数4

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

  • ベストアンサー
  • 回答No.3
  • pakuti
  • ベストアンサー率50% (317/631)

mv /opt/xxx/test /* / 以下のディレクトリのリストを作りそのリストの中の最後のディレクトリ名の中に その他の全てのディレクトリ(binやusrなど)と、/opt/xxx/testが移動されていませんか? rescueモードで、全て戻せばどうにかなるかもしれませんが 保障は出来ません。。。。。 /mnt/sysimage/に移動、恐らくはvar/ の下に全てが移動されているので ひとつずつ1階層上のディレクトリにmvする。 mv bin ../

共感・感謝の気持ちを伝えよう!

質問者からのお礼

確かに、var配下に移動されてました。 結局は再インストールしましたが、ご解説ありがとうございました。

関連するQ&A

  • Linux初心者です。ワイルドカードの使い方について教えてください。

    Linux初心者です。ワイルドカードの使い方について教えてください。 ============================================== あるディレクトリ内に多数のファイルがあって、 特定の1つ(もしくは2つ)のファイル以外を全て mvコマンドで移動させたいのですが、 特定ファイル名を"除外"する方法が分かりません。 ============================================== >ls a1 a2 a3 a4 b1 b2 b3 b4 例えば、a1,a2,a3,a4,b1,b2,b3,b4 という8個のファイルがある場合、 a1とb2以外の6個を選択して移動させたいのですが、 ワイルドカード等で簡単に選択する方法はないものでしょうか? 自分で思いつく限りでは、$send_dirを移動先として (1)mv * {$send_dir} (2)mv $send_dir/{a1,b2} ./ のような2つのコマンドを新しいコマンド(例えば"mv2")に割り当てて、 > mv2 {a1,b2} のように指定すれば、それ以外が移動される、 というようにできるのかな?と思ったのですが、 このやり方も見当違いだったりしますでしょうか? OSはCentOS5.5で、シェルはtcshです。 よろしくお願いします。

  • unix の mv コマンド

    unix の mv コマンドの mv -i directory1 directory2 の場合で、directory2が既存でない場合、directory1をdirectory2 に移動する(変名する)と、 参考書に書いてありますが、既存でないとは、lsでは、ディレクトリー名が出てくるけど、emptyなディレクトリーということでしょうか(ファイルが入ってない)? mv -i filename1 filename2 の場合、filename1 を filename2 に移動(変名する)と参考書にありますが、ファイルの名前だけ変えることじゃなくて中身も変えるということでしょうか? mv コマンドでは、単にファイルの名前だけ変えることはできないということでしょうか? unix超初心者で申し訳ありませんが、よろしくお教えください。

  • 絶対パスでアーカイブされたファイルをtarコマンドの相対パスで展開

    UNIXコマンドの「tarコマンド」についての質問です。 ファイルを絶対パスを用いてアーカイブをかけた場合、アーカイブファイルの展開時に、絶対パスで展開させず相対パスで展開させる方法がわかりません。 test.logを絶対パスを用いてアーカイブします。 %pwd /export/home %ls test.log %tar -cvf test.tar /export/home/test.log %ls test.log test.tar %rm test.log %ls test.tar このアーカイブファイルを別ディレクトリに移動 %mv /export/home/test.tar /export/home/test/test.tar 自身もディレクトリ移動 %cd /export/home/test %ls test.tar このような条件でアーカイブファイルの展開を実行 %tar -xvf test.tar %ls test.tar /export/home/testのディレクトリでは展開されず下記のように 絶対パスで指定したディレクトリに展開されます。 %cd /export/home/test %ls test.log インターネットで調べたところ %tar -xvf test.tar -C /export/home/test で実行すれば相対パスで展開できると記述があったのですが うまくできませんでした。 上記のコマンドで実行したところ得にはエラーは出ず メッセージが「tar:ブロックサイズ=4」と出て展開もされませんでした。 もしよろしければご教示願えませんでしょうか。 よろしくお願いいたします。

その他の回答 (3)

  • 回答No.4
  • k_izumo
  • ベストアンサー率50% (68/134)

chrootコマンドでルート変更したらどうでしょうか? # chroot /opt/xxx/test かな。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

root権限でログインもできず、試せませんでした。 再インストールしました。ありがとうございました。

  • 回答No.2

>>mv /opt/xxx/test /* >コマンドの指定方法に誤りがあったのか、 /*が展開されてエライことになりますね どうして*なんかつけたのか >/bin配下のコマンドが効かず何もできない状態なのですが、何とか復旧させる手段はないでしょうか。 rescue CD等でブートしてマウントすれば状況は見えると思いますが。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

再インストールしました。ありがとうございました。

  • 回答No.1
  • OKwebb
  • ベストアンサー率44% (92/208)

/opt/xxx/test/bin で /bin が上書きされてしまたのかしら? バックアップがないなら、再インストールしかないと思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

再インストールしました。ありがとうございました。

関連するQ&A

  • 【Linux】シェルの実行方法を教えて下さい。

    【Linux】シェルの実行方法を教えて下さい。 ファイルの中身が#!/bin/bashで始まる拡張子shのシェルがあります。 これを実行するには、どのようなコマンドを打てばよいのでしょうか? 1.rootでログイン。 2.test.shがあるフォルダに、cdで移動する。 3.test.shと入力し、Enterキーを押す。 ↑みたいな感じで良いのでしょうか。 テスト用サーバなので、最悪壊しても良いと上司に言われましたが、 なにぶん時間がないため質問させていただきました。 Redhatでバージョンが3か4だったと思います。 よろしくお願いします。

  • 階層を変えると動作しないです。

    public_html 直下に mailmaga.cgi とその動作に必要な全ファイルをUPして テスト確認で動作しました。 他のCGIは public_html/cgi-bin/*****/*****.cgi と言う形で置いているので 同様に public_html/cgi-bin/mailmaga/mailmaga.cgi と置き換えたいのですが public_html 直下から移動すると以下のエラーメッセージが出ます。 『CGIファイルが入っているディレクトリ又はCGIファイルのパーミッションに  誤りがあります。CGIファイルが入っているディレクトリまたはCGIファイル  のパーミッションは 705 か 755 にして下さい。』 パーミッションは 705 でも 755 でも試してみましたが駄目でした。 ブロバイダの仕様には『CGI設置場所は public_html ディレクトリ配下であれば どこにでも設置できます』と記されています。 製作者に聞くのが一番なのですが、質問には答えて頂けない様で…;; どのような原因が考えられますでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • CGI
  • installコマンド

    ftpユーザーを作成するのになぜ install -m 111 -o root -g wheel /bin/ls /home/ftp/bin のようにlsコマンドを/home/ftp/binの配下にリンクさせる必要があるのでしょうか? ご存知の方よろしくお願いします。

  • FedoraCore4 CUI表示

    こんばんは。いつも勉強させて頂いております。 FedoraCore4をインストールしました。テキストエディタで テストファイルを作成し、/etcフォルダ直下に保存しました。 これをCUIからlsコマンドで見ると文字化け表示されます。 ファイル名を平仮名から英字に変更すると文字化けしません。 また、catコマンドで中身を閲覧すると同様に文字化けします。 ただし、中身を英字に変えると文字化けしません。 以上の事からCUIでは日本語表示不可なのでしょうか? それとも何かユーティリティ等の設定で表示可能なのでしょうか? また、CDコマンドでの移動についてなのですが、ルート直下にあるetcや homeには移動できるのですが、etc直下のディレクトリや、 home直下のディレクトリに移動できません。homeの直下にFedoraという 初期ユーザー名のディレクトリがあり、その中に保存してあるファイルを 表示するにはどうすればよいのでしょうか?cd /home/Feforaで、ディレクトリの移動をしてもhomeに移動するだけです。何故なのでしょうか? 大変初歩的な質問で恐縮ですが、ご教授頂けますようお願い致します。

  • MSDOSコマンドでディレクトリ内をきれいにしたい

    DOSコマンドで複数のファイルとサブディレクトリをすべてどこかのディレクトリに移動するのと削除するにはどのようなコマンドになりますでしょうか? 複数行のバッチファイルにすることを想定しておりますので複数コマンドになってもOKです。 del,moveコマンドやrmdirだけでは対応できなそうなので、、、。 (1) C:\TEST\ C:\TEST\a.txt C:\TEST\b.txt C:\TEST\XXX\xxx.txt C:\TEST\YYY\yyy.txt を C:\TEST_NEW\ C:\TEST_NEW\a.txt C:\TEST_NEW\b.txt C:\TEST_NEW\XXX\xxx.txt C:\TEST_NEW\YYY\yyy.txt に移動したいのと (2) C:\TEST\ C:\TEST\a.txt C:\TEST\b.txt C:\TEST\XXX\xxx.txt C:\TEST\YYY\yyy.txt を C:TEST\ 内を空っぽにしたいです。 C:\TEST\ の中身は毎回変わり(上記a,b,XXX,YYY,xxx,yyyの名前が変わる)、(1)と(2)のバッチファイルを作って、ときどき C:TEST\をきれいにしたいです。

  • コマンドプロンプトとシェルでの実行結果の違い

    OS:Redhat AS v4.0 /etc/init.d/配下の実行ファイルをスクリプトの中で呼び出して いますが、何故かスクリプト実行時と個々のコマンドで実行した時と アプリの文字コードが違いますが、何が原因なのでしょうか? コマンドプロンプトで実行した時:(文字コード)正常 root#/etc/init.d/xxx restart スクリプト経由で実行時:(文字コード)異常root#/opt/tools/script.sh ※スクリプトで/etc/init.d/xxx restart を呼び出すます。。

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

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

  • ディスクの使用サイズ表示の違い

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

  • Linux + phpで2バイト文字のパス指定

    RedHatLinux4 update6 + Apache2.2.8 + php5.2.5でプログラムを作成しております。 //server/share/hogehoge を /opt/lampp/htdocs/share にcifsマウントして、サーバの"hogehoge"ディレクトリにある"補毛補毛"というディレクトリにアクセスできるようphpに記述したいのですが、うまくいかずに困っています。 /opt/htdocs/test.php ------------------------------------------------------------------- $glob="./hogehoge/補毛補毛"; chdir($glob);           //カレントディレクトリ移動 foreach (glob("*.xls") as $filepath) { echo "$filepath size " . filesize($filepath) . "\n"; } ------------------------------------------------------------------- 具体的には上記のようなソースを書いたのですがうまく動きませんでした。./hogehoge/までなら動くのですが、そこに2バイト文字を含めるとうまく動きません。 どうにかしてうまく動かす方法はありませんでしょうか。サーバ側のディレクトリ名を変更することはできません。 ご回答、宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • フォームからCGIを起動できない

    こんばんは。 WebサーバApacheでCGIを作成しています。 DocumentRootが初期設定/var/www/html/で、その下にindex.htmlを作成しました。 次にcgiのディレクトリが初期設定の/var/www/cgi-bin/で、その下にtest.cgiを作成しました。 そして、test.cgiのパーミッションを-rwxr-xr-xにしてからApacheを起動しました。 別マシンのブラウザからhttp://xxx.xxx.xxx.xxx/index.htmlでアクセスし、フォームのテキストボックスに「abc」と入力して送信ボタンを押しましたが、404エラーになってしまいます。 (アドレスバーには「http://xxx.xxx.xxx.xxx/test.cgi?NAME=abc」と表示) ブラウザのアドレスバーに直接「http://xxx.xxx.xxx.xxx/cgi-bin/test.cgi?NAME=abc」とすると正常にアクセスできます。 ドキュメントルート配下にあるindex.htmlからドキュメントルート外にあるCGIのディレクトリ(ScriptAlias /cgi/bin/ "/var/www/cgi-bin/")を参照するにはどのようにしたらよいのでしょうか? ----------index.html---------------- <HTML> <HEAD><TITLE>フォーム</TITLE></HEAD> <BODY> <FORM ACTION="../cgi-bin/test.cgi" METHOD="GET">名前 <INPUT TYPE="TEXT" NAME="NAME"><BR> <INPUT TYPE="SUBMIT" VALUE="送信"> </FORM> </BODY> </HTML> ----------index.html---------------- ----------test.cgi------------------ #!/usr/bin/perl $str = $ENV{"QUERY_STRING"}; print << "EOF"; Content-type: text/html <HTML> <HEAD><TITLE>TESTCGI</TITLE></HEAD> <BODY>$str</BODY> </HTML> EOF ----------test.cgi------------------

    • ベストアンサー
    • CGI