• 締切済み

大量のファイルをCDからコピー

CDの中の1つのフォルダに5万個のファイルがあります。 GUIでHDDにコピーしましたが、あまりにも遅過ぎるので途中で止めました。 プログレスバーが全く進まないし、熱で壊れそうなので途中で止めましたが、いくつかのファイルはコピーできていました。 1つのファイルは平均200kBです。 日本語、大文字が無いので、 0から始まるファイルのコピー 1から始まるファイルのコピー    ・・・・・・・ zから始まるファイルのコピー というように36分割すれば、1回で1400ファイルぐらいのコピーになるから早くできそうです。 考えはしましたが、これを自動化する方法が分からないし、他にもっとよい方法がございましたら教えてください。 Linuxの普通の操作でさえ困難なほどの知識しかありません。 マウントはやったことがありません。 初心者向けの方法を教えてください。

みんなの回答

回答No.4

 No.2 に補足と訂正です(No.3 の回答で答えは出ているのかも知れませんが、キモチ悪いので)。 補足: > $ tar -cvf - . | (cd /home/hoge/fuga ; tar -xvf -)  もっと単純に、cp -r . /home/hoge/fuga という方法もあります。コピー元にディレクトリが指定できるかどうか、マニュアルで確認してみてください。 訂正: > $ find . -name '0*' -cpio | (cd /home/hoge/fuga ; cpio オプション) これは記憶違いでした。正しくは、 find . -name '0*' -print | cpio -o | (cd /home/hoge/fuga ; cpio -idv) です。

noname#39234
noname#39234
回答No.3

抜本的な改善策はひとつ。 FDとかCD-ROMなどの遅い回転メディアでは 転送速度以上にシーク速度の遅さが目立つ…ゆえに シーケンシャルアクセスだけするのが最速のアクセス方法。 つまり、CD-ROMをそのままイメージファイルにして dd if=/dev/hdc of=~/cdrom.img できたイメージファイルをループバックデバイスとして マウントするためのディレクトリーを作り mkdir ~/cdromimage そこに実際にマウントする。 mount -o loop ~/cdrom.img ~/cdromimage これで、ls ~/cdromimageすると CD-ROMの最上ディレクトリーが再現される。 なお、~/はホームディレクトリーを表す特殊文字。 ディレクトリー構造をそのまま利用する用途なら そのまま使ってもいいし 通常のHDD領域に、改めてコピーしても良い。 そういえば、数年前にDIRECTORで作成された ある種のCDカタログがあって ビッグサイトでのカタログビュワー作者らとの雑談では 「CD-ROMドライブが壊れる」とまで言われていた。 CDイメージ化は無駄もあるけど、結果的には CD-ROMドライブの消耗を抑える効果も得られる。 この程度のマウント操作は、基本のうちだから それが無理ならWindowsで市販仮想CD-ROMソフトとか買う手もある。

回答No.2

 その GUI ソフトの出来にもよりますが、ファイルのコピーに要する時間は、CD と HDD の転送速度に依存するので、ファイル群を 36 分割しても、トータルでかかる時間はほとんど変わらないと思います。  それでも他の方法を試したいのなら、他のソフトを探して使うか、Linux 標準のコマンドを使うことになります。  なお、No.1 の回答に > $ cp * /home/hoge/fuga とありますが、引数の個数(多分 255 か 256)とコマンド行の長さ(確か1000 文字ぐらい)に制限があるので、5 万個のファイルでは、制限に引っかかって実行できません。1400 個でも無理です。  方法はいくつか考えられますが、例えば、 $ cd /mnt/cdrom/(目的のファイルのあるディレクトリ) $ tar -cvf - . | (cd /home/hoge/fuga ; tar -xvf -) という風にしてみてください(画面にコピーされるファイル名を表示しながらコピーが進みます)。いきなりやらないで、少ないファイルでテスト用のコピー先ディレクトリを使って、テストしてくださいね。  もし、 > 0から始まるファイルのコピー > 1から始まるファイルのコピー >   ・・・・・・・ とするなら、tar の代わりに、 $ find . -name '0*' -cpio | (cd /home/hoge/fuga ; cpio オプション) というのが考えられるのですが、cpio の「オプション」がどうすればよかったか、今思い出せません。マニュアルで確認してください。確か -ov か何かだったように記憶しているのですが…。

  • goooopon
  • ベストアンサー率53% (7/13)
回答No.1

この際、shellになれましょう。 マウントは、おそらく $ mount /mnt/cdrom でできるはずです。 で、その後、 $ cd /mnt/cdrom/(目的のファイルのあるディレクトリ) $ cp * /home/hoge/fuga * はワイルドカードといって、まあ七並べでいうジョーカーみたいなものです。 たとえば、 $ ls foo foo1 foo2 goo goo2 というファイルがあったとすると $ ls *2 foo2 goo2 $ ls goo* goo goo2 ってかんじになります。

関連するQ&A

  • ファイルが消せないんです

    linuxとwindowsをインストールしてあるんですが、 linuxをたちあげてからwindowsをマウントしてlinux側のあるファイルをwindows 領域にコピーして、windowsをたちあげました。 そしたら、文字化けした長い名前のファイルができてて、ゴミ箱に 捨てようとしても捨てられません、そのファイルのあるフォルダごと 捨てようとしてもダメです。

  • VBSでファイルやフォルダのコピー途中で止まる。

    VBSでファイルやフォルダのコピー途中で止まる。 以前に「コピー中にプログレスバーを表示させるには」http://okwave.jp/qa/q5990703.html ========================================== Const FOF_CREATEPROGRESSDLG = &H0& strTargetFolder = "C:\backup\" Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.NameSpace(strTargetFolder) objFolder.CopyHere "D:*.*", FOF_CREATEPROGRESSDLG ========================================== で教えて頂きました上記スクリプトでコピーはできたのですが、普通では見えない保護されたシステムファイルも丸ごとコピーしようとする見たいで、途中で"System Volume Informationを作成または置き換えできません・・・"エラー表示がされて止まってしまいます。 このようなコピーできないファイルやフォルダを無視するか、指定して除外する方法はありませんでしょうか。 よろしくお願いいたします。

  • 大量のファイル数のコピーをしたい

    Windows Serverのファイル(約3GB)をUSB外付けHDDにコピーをしています 「ドラック&ドロップ」でコピーをしているのですが、途中でエラー表示されます 原因を調べていると、Windowsの標準のコピー(「ドラック&ドロップ」)については ファイル数が多くなるとエラーが出るので、別の専用(大量のファイルやフォルダー) のコピーソフトを使うべきだ。という話を聞きました。 この種の大量のファイルをコピーでする、フリーソフトをご存知であれば教えていただけ ないでしょうか よろしくお願いします。

  • ファイルの所有権を保ったまま大量コピー

    NTFSの所有権情報を保ったまま、ネットワーク越しに大量のファイルのコピー(バックアップ)を定期的に行いたいのですが、WindowsのGUIやXCOPYコマンドではえらく速度が遅かったり、途中でエラー吐いて止まったりして使い物になりません。 FireFileCopy・ZCOPY for WIN・Sync Toyなどのツールが使えればいいのですが、所有権情報が保持できないようです。 何かいい方法やツールはありませんでしょうか?

  • xfsファイルシステム上のファイルコピーができない

    Buffaloのテラステーション本体が故障しました。HDDを取り出し、Ubuntuでマウントさせフォルダーを選択して外付けHDDにコピーすると、途中で「入出力エラー」で止まります。フォルダーによってはコピーが成功します。 何とか全て外付けHDDにコピーしたいのですが、何か良い方法はありませんでしょうか。1TBのHDDです。ミラーリングのバックアップディスクを取り外してデータを取り出そうとしています。 よろしくお願いします。

  • vbsでファイルやフォルダのコピー中にプログレスバーを表示させるにはど

    vbsでファイルやフォルダのコピー中にプログレスバーを表示させるにはどうすればいいでしょうか。 無言でコピーするコードはいろいろと紹介されているのですが、何も表示されないので進行状況がわかるようにしたいのです。 残り時間表示やパーセント表示などどのような表示方法でもいいのでおおよその進行状況がわかる方法をご存知でしたら教えて頂けないでしょうか。 宜しくお願い致します。 <例> コピー元ファイル:"C:\test\*.*" コピー先フォルダ:"C:\backup\"

  • CDに ファイルをコピーできない

    少し大きなファイルをコピーするために、「RecordNow」を使って、DVDにコピーしました。その後、小さいサイズのファイルをCDにコピーしようと 以前にしていたように、ファイルをハイライトし、左クリックして、カテゴリーを出したところ 「送る」の項目の中の 「DVD-RAM ドライブ(D)」というのがなくなっていました。 いぜんはこれで、Dドライブに書き込みフォルダを準備、確認して書き込みという方法を使っていたのですが どうなってしまったのでしょうか? どうすれば、以前のようにできるでしょうか?よろしくお願いします。

  • Windowsのフォルダ・ファイルのコピーでの強制上書きする方法につい

    Windowsのフォルダ・ファイルのコピーでの強制上書きする方法について。 WindowsXPを使っているのですが、フォルダ・ファイルをコピーするときに コピー先に同じフォルダ・ファイルがあると、上書き確認ダイアログが表示されるのですが この上書き確認ダイアログを表示せずに、強制上書きする方法は有りますでしょうか。? ネットで調べたら、cpコマンドをコマンドプロンプトで行う方法はあるようなのですが、 できればコマンドプロンプトではなく、GUIでやりたいです。 よろしくお願いいたします。

  • ハードディスクに無いファイルのみCDからコピーしたい。

    ハードディスクに無いファイルのみCDからコピーしたい。 現在、数百個のエクセルファイルがあり、ハードディスクと約100枚のCDに、重複して入っています。 これらを1つのハードディスクにまとめて整理したいのですが、できるだけ簡単な整理方法(フリーソフト等含めて)を教えてください。 ハードディスクもCDもフォルダ内にファイルを置いています。 これらを全部フォルダから出して、1つのハードディスクにコピーすれば、ファイル名による整理はできると思いますが、もともとハードディスクに入っていたファイルをフォルダに戻すだけでも大変です。 何か良い知恵をご教授下さい。よろしくお願いします。

  • Puppy LinuxでNTFS上のJPEGをコピーするとサイズが小さくなってしまうのはなぜなのでしょうか?

    初歩的な質問です。 今日、初めてPuppy Linux (日本語版 4.00.3)を使ってみました。 Puppy Linux(1CD Linux)でNTFS上のJPEGファイルを同じNTFS上の別のフォルダへコピー(メニューバーのメニューを使って、普通にコピーしたつもりです。。)してみたのですが、再起動しWindowsにログインして、この二つのファイルのサイズを確認してみたところ、サイズが小さくなっていました。 ※217 KB (223,203 バイト)のファイルが、172 KB (177,080 バイト)になってしまいました。ビューアで拡大表示してみたところ、元ファイルよりも画質が荒れていました。 これはなぜなのでしょうか? 。 Puppy Linux は、Windows の場合とちがい、「コピー」方法が複数あるのでしょうか?。それとも、このビルドでのNTFSへの対応がまだ完全ではないということでしょうか?。 おねがいします(><;