Linux mkdirでサブフォルダごと作成

このQ&Aのポイント
  • Linuxのmkdirコマンドを使用して、サブフォルダを含めた階層構造を作成する方法について教えてください。
  • ftpを使用してファイルを転送する際に、コピー先のフォルダ階層を一括で作成する方法があるか教えてください。
  • mkdirコマンドのオプション-pを使わずに、ftp内でサブフォルダを含めたフォルダ階層を作成する方法について教えてください。
回答を見る
  • ベストアンサー

Linux mkdirでサブフォルダごと作成

Linuxでファイルを転送するシェルを作成しております。 コピー元と同じ階層構造でコピーしたいのですが、 ftp内で mkdir をする時にオプションの -p は使えないのでしょうか? さきほどやってみたのですが、うまくいきません。 Target="share/1G/1T" ftp -i -v -n 10.156.1.xxx <<END user UserName PW bin mkdir -p $Target *1G/1Tというフォルダを一気に作成したい。 cd $Target #put $Target/test.txt /Target/test.txt bye END ftpのコピー先に、フォルダ階層をいっきに作成する方法はありますでしょうか?

  • pen123
  • お礼率58% (222/377)

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

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.2

使えません。Linuxのmkdirコマンドとftpのmkdirコマンドは似ていて非なるものです。 そこで、以下のようにすれば期待されている動作に近い形になるかと思います。 Target="share/1G/1T" ( echo 'user UserName PW' echo 'bin' IFS=/ for subdir in "$Target"; do echo "mkdir $subdir" echo "cd $subdir" done #echo 'put $Target/test.txt /Target/test.txt' echo 'bye' ) | ftp -i -v -n 10.156.1.xxx ただ、上記はディレクトリが最初から存在していた場合についてあまり 考慮されていません(処理は継続されますが、550のコードが出力されてしまいます)

pen123
質問者

お礼

お礼がおそくなりすみません。 ありがとうございました。 ftpの特性がわかってきました。 また、非常に参考になりました。ありがとうございます。

その他の回答 (1)

  • ki073
  • ベストアンサー率77% (491/634)
回答No.1

ftpにこだわらないのならrsyncはどうでしょうか、相手が空のディレクトリならそのままコピーになりますし、--deleteをつけると余分なものは消してくれます。 参考 http://www.maruko2.com/mw/rsync_でディレクトリの同期(バックアップ) 「ssh と組み合わせリモートマシンにコピーする」 あたりが参考になるのではないかと

pen123
質問者

お礼

お礼がおそくなりすみません。 こういう方法もあること、参考になりました。ありがとうございます。

関連するQ&A

  • MkDir関数

    VBでフォルダを作成する、基本的なロジックを作成しています。 現在、仮にD:\にはフォルダが存在しないとして、 MkDir "D:\Test\Temp\" とするとエラーになってしまいます。 MkDir "D:\Test\" とするとフォルダが作成されるのですが、 その後に、 MkDir "D:\Test\Temp\" とすると、やはりエラーになってしまいます。 どのようにすれば、1つの処理の中で、複数階層のフォルダが作成できるのでしょうか? ちなみにVB6.0 SP5で、実際にはMkDir関数の引数は文字列変数です。 よろしくお願いします。

  • Linuxで深い階層のフォルダを作成したい

    Linuxで深い階層のフォルダを作成したいのですが、通常のmkdirではエラーが出ます。良いモジュールはありますか?

    • ベストアンサー
    • Perl
  • フォルダを一括で作成したいのです(階層がある分)。

    フォルダを一括で作成したいのです(階層がある分)。 添付画像(例) AからF列までのデータがあります。 G列のように「う\え\お」の階層で作成したいのです。 そこまで作成すればフォルダ作成ソフトかmkdirコマンドで作成しようと考えています。 関数ではできないでしょうか(VBでしないとだめでしょうか?)。

  • フォルダ作成について

    現在_mkdirにてフォルダを作成しているのですが ユーザーに入力してもらった名前でフォルダが作られ、 さらにそのフォルダの中にも別で入力してもらった名前のフォルダが作られるようにしたいです。 例)\\abc\\(入力内容1)\\xyz\\(入力内容2)\\ファイル.txt いろいろ試したのですが _mkdir("\\abc"); _mkdir("\\abc\\(入力内容1)"); となった時点でエラーでとまってしまいました。 何かいい方法はないでしょうか。

  • JAVAでフォルダ圧縮時のZipEntry作成方法

    JAVAでZIP圧縮プログラムを作成したのですが ZipEntry作成時にファイル名を引数にすれば問題なく解凍できたのですが フォルダ名やフォルダ内のファイル等を指定するとXP等で解凍できなくなってしまいました。 書式が間違っているのでしょうか? 何か方法やサンプルがありましたらよろしくおねがいします。 ZipEntry target = new ZipEntry("test.txt"); ←コレは解凍できました。 以下の用に書くと解凍できない ZipEntry target = new ZipEntry("folder\\"); ZipEntry target = new ZipEntry("folder\\test.txt"); ZipEntry target = new ZipEntry("\\folder\\test.txt");

    • ベストアンサー
    • Java
  • 共有フォルダへのフォルダ作成とファイルコピー

    PC1からPC2の共有フォルダへのフォルダ作成とファイルコピーを行いたいのですが、 フォルダ作成に「_mkdir」を使用しているのですが、 これではフォルダを作成してくれませんでした。 ファイルコピーも「CopyFile」で1個づつコピーすることはできたのですが、 複数のファイルを一気にコピーする方法がわかりません。 これも「SHFileOperation」を使用してみたのですが、 ネットワークでは使用できないみたいです。 要は、PC1からPC2の共有フォルダへ、 指定のフォルダとその中のサブフォルダ及びファイル類全てを コピーしたいのです。 Windows上でドラック&ドロップで行うような感じです。 元々はPC1内だけでのフォルダ作成やファイルコピーをしていいたのですが、 これをネットワークでもできるようにしないとならなくなり、 調べてみたのですが、 いまいちネットワークプログラミングを理解できなくてこちらに質問させて頂きました。 どなたか情報をお持ちの方がいらっしゃいましたら お力をお貸しください。 よろしくお願いいたします。

  • フォルダを自動作成するばっちについて

    初めての投稿になります。 OKWaveで過去の記事を参考に、フォルダを自動作成するバッチを 作ったのですが、 同名ファイルを作ろうとすると、エラーも何も表示されませんが、 スルーされてしまうみたいで、フォルダ自体も作成されず、上書きもされません。 同じファイルに自動で連番を付けるなどの回避策など何かありませんでしょうか。 例、テスト   テスト01   テスト02       etc等 バッチ内容が以下になります。 set /p USER_INPUT=フォルダ名を入れてください。: mkdir "%USER_INPUT%" ご教授よろしくお願いいたします。

  • VBSでファイル名と同じフォルダを作成し、移動させる。

    はじめまして。こんにちは。ファイル名の取得、フォルダの作成、移動ができなくて困っています。 たとえばC:\testというフォルダの中にaaa1.txt aaa2.txt,aaa3,txt・・・zzz343.txtというようにファイルがランダムにあったとします。最初の3文字は英語と決まっています。そこでaaa1.txtやaaa2.txtがあればaaaというフォルダを同じ階層に作成し、aaa1.txtとaaa2.txtを新しく作成したaaaというフォルダに移動させる。これをすべてのファイルにたいして行いたいのですがどうすればいいのでしょうか? 参考になるURLやサンプルプログラムがありましたら教えて下さい。よろしくお願い致します。

  • フォルダを一括で作成したいのです(階層がある分)。

    フォルダを一括で作成したいのです(階層がある分)。 添付画像(例) A列からF列までのデータがあります。 G列のように「う\え\お」の階層で作成したいのです。 それをmkdirコマンドで作成しようと考えています。 関数で考えたのですがどうもうまくいかないようなのでVB等でできませんでしょうか。 実際ファイル名はまだ長く、データの行もかなりあります。 A列からE列は数字ではなく文字列です。

  • 【vba】もしフォルダがなければ作成したい

    Sub test() If Dir("C:\バックアップ\" & Date$) <> "" Then 'ファイルがないなら作成 MkDir "C:\バックアップ\" & Date$ End If End Sub このコードを実行しても ファイルがあってもなくても作成されないのですが 何がおかしいのでしょうか?