コマンドからコピーの仕方を教えてください

このQ&Aのポイント
  • HPUNIXを使用している場合、特定の拡張子のファイルのみをディレクトリ構造ごとコピーする方法について教えてください。
  • 「cp -ir」コマンドだけではディレクトリ構造を維持せず、指定されたディレクトリ以下の全てのtxtファイルがコピーされてしまいます。この問題を解決する方法を教えてください。
  • コピー元ディレクトリの中から特定の拡張子(*.txt)のファイルのみを別のディレクトリにコピーする方法を教えてください。
回答を見る
  • ベストアンサー

コマンドからコピーの仕方を教えてください

HPUNIXを使用しています。 あるディレクトリから対象の拡張子のみディレクトリ構造ごとコピーを行いたいのですが可能でしょうか? イメージとしては (コピー元) /test/a/1.txt /a/2.txt /a/3.exe /b/4.txt /b/5.exe ※/test/以下の各ディレクトリの*.txtを/test1/にコピーする (コピー後) /test1/a/1.txt /a/2.txt /b/4.txt 「cp -ir」だけだと/test1/直下に全txtファイルが保存されてしまいます。 こういったことはできるのでしょうか? よろしくお願いいたします。

  • a-k-a
  • お礼率43% (77/176)

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

  • ベストアンサー
回答No.1

cd /test tar cvf - */*.txt | ( cd /test1 ; tar xf - ) で、階層イメージのままもっていけます。 もっとスマートな方法があるかもしれませんが・・・

関連するQ&A

  • linuxコマンド/複数のディレクトリに対して一括でファイルをコピー

    linuxコマンドについて質問です。 ある特定の1つのファイルを、複数のディレクトリに対して一括コピーはできなのでしょうか? root La Lb Lc -test.txt ↓実行後 root La-test.txt Lb-test.txt Lc-test.txt -test.txt root以下にあるファイル test.txt(root/test.txt)を root以下にあるディレクトリa,b,cにコピーしたいのです。 よろしくお願いいたします

  • コマンドプロンプトでのワイルドカードによるコピー

    こんにちは、よろしくお願い致します。 コマンドプロンプトにおいて Dirというディレクトリの下に、Dir1、Dir2、・・・DirNのようにN個のディレクトリがあったとします。 この時Dir1、Dir2、・・・DirNの直下にあるすべてのファイルだけ、つまり Dir\Dir1\* Dir\Dir2\* ・・・ Dir\DirN\* を、一気にカレントディレクトリにコピーしようとして cp Dir\*\* . としても、上手くいきませんでした。 (Dir1などのディレクトリごとをコピーをするのではない) どうやら、ディレクトリの名前にワイルドカードを使うことができないようでした。 何かいい方法はありませんでしょうか?

  • Linux cpコマンドの使い方がわかりません

    ファイルをコピーしたいのですが home/test1/test2 こんなディレクトリになってます。 test1のディレクトリにあるlog1ファイルを test2にコピーしたいのですが、 cp log1 test2 とすると、test1のディレクトリの中にtest2という 名前の、log1をコピーしたファイルができます。 test2というのをディレクトリ名として認識してくれません。 cp log1 test2/ もできません。 "log1/test2"のファイルかディレクトがありません、と返ってきます。 基本的はことですが、教えてください。

  • ワイルドカードを使ったcpコマンドについて

    初心者なので質問自体が変かもしれませんが、どうぞよろしくお願いします。 緊急事態で困っております・・。 [IN]のようなディレクトリ構成のデータがあります。 これを一括で[OUT]のようにディレクトリ作成し、ファイルをコピーしたいのですが、 可能でしょうか・・? [IN]  /A/B1/C/*.txt  /A/B2/C/*.txt  /A/B3/C/*.txt [OUT]  /A/E1/*.txt  /A/E2/*.txt  /A/E3/*.txt  ※初期状態は/A/のみ  ※E?ディレクトリを作成しその中に、INと同じファイル名でtxtファイルをコピー まずは、B?をE?のようなコピー句の書き方がわかりません。。

  • バッチでのファイルのコピー

    ファイルのコピーをしたいのですが、 C:\aaa\bbb\???\test.txt と、「bbb」のディレクトリまでは分かるのですが、 必ず「???(任意)」のディレクトリが入ります。 そのディレクトリの下には必ず対象となるtest.txtと いうファイルが存在します。 「???」がなければ、 copy c:\ddd c:\aaa\bbb\test.txt と出来るのですが、「???」のために取ることが出来ません。 どなたか、ご存知の方がいましたら教えて下さい。 宜しくお願い致します。

  • ディレクトリ以下の全ファイルのコピー

    /src/ディレクトリにあるすべてのファイルやサブディレクトリを/dest/ディレクトリにコピーしたいと思っています。 ただ、次のコマンドでは/src/.dotfileといったドットファイルはコピーされません。 $ cp -Rf /src/* /dest/ このようなドットファイルも含めてすべてのファイル、サブディレクトリをコピーするにはどのようにするのがよいのでしょうか? 次のような方法が思い浮かびましたが、もっとシンプル or スマートな方法がありましたら教えてください。 (a)シェルオプションのdotglobを一時的にONにしてから、上記cpコマンドを実行する。 (b)/src/直下のドットファイルだけ別途指定する。 $ cp -Rf /src/{*,.[^.]*} /dest/

  • こんなコピーができるソフトないでしょうか?

    こんなコピーができるソフトはないでしょうか? フォルダ同士を比較して、基準にした方との差分だけ、まったく同じフォルダ構成で 出力できるようなソフトです。 ファイルの中身が全く同じ場合はコピー対象外にしたいです。 イメージ的には、WinMergeでフォルダ比較した結果をまったく同じパスの構成(ルートのフォルダ名は気にしない)で出力するようなことです。 実は、リポジトリの管理をすることになり、前日の構成と、次の日の構成を比較し、ファイル追加も含めて、どこが変わったかを手っ取り早く知る必要があるのです。 前日分に上書きすれば、翌日分にすることができるように、変更分だけ抜き出せるようなソフトを探しています。 よろしくお願いいたします。 例)  AとA2フォルダ以下を比較した場合  (test.txtの内容は一緒とする) A ― B ―test.txt  ∟C ― D ― test2.txt ∟test3.txt A2 ― B ―test.txt   ∟C ― D ― test2.txt ∟test3.txt ■結果 A 3 ― C ― D ― test2.txt ∟test3.txt

  • findを使うのか?

    ruby超初心者です。教えてください。 このようなディレクトリ構造があるとします。 root_dir |--12_dir | a.txt | b.txt |--23_dir | a.txt | b.txt a.txt, b.txtには、ともに A= B= と書かれているとします。 このとき、root_dir(c:\root_dir)にアクセスして、 12_dir直下のa.txtには、12_dirの最初の文字"1"をとって A=1 B=(1) と書き換え、 12_dir直下のb.txtには、12_dirの第2の文字"2"をとって A=2 B=(2) と書き換え、 23_dir直下のa.txtには、23_dirの最初の文字"1"をとって A=2 B=(2) と書き換え、 23_dir直下のb.txtには、23_dirの第2の文字"3"をとって A=3 B=(3) と書き換えるには、Rubyでどのようなプログラムを書けばよいのでしょうか。 なお、実際のファイル数はもっと膨大です。 よろしくお願いします。

    • ベストアンサー
    • Ruby
  • 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\をきれいにしたいです。

  • PHP 削除やコピーが出来ない

    PHP 削除やコピーが出来ない $rcd = unlink("test.txt"); $rcd = `rm test.txt`; $rcd = exec('test.txt'); 上記のように、削除コマンドを実行しても削除されない。 コピーコマンドも、同じくで copy("hoge.txt", "hoge.dat"); fcopy("hoge.txt", "hoge.dat", TRUE); `cp hoge.txt hoge.dat` と、やってみたが削除対象ファイルなどに変化はありません。 ちなみに、削除対象ファイルのパーミッションは、644。 PHPファイルは、755. レンタルサーバーを、二つほど変えてみたが同じでした。 エラーを表示することも無かったので、何が悪いのかさっぱり分かりません。 何か、よい方法を教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP