同じファイルをファイル名に規則性の無い複数のディレクトリにコピーするには

こんにちは。

似た質問が過去にありましたが、わからないので質問させていただきます。


あるファイルを、特定のディレクトリ以下のにある、全てのディレクトリの中の同じ名前のディレクトリにコピーする必要があるのですが、ターミナルでどのように入力すれば実現できるのでしょうか。


ターミナルを使う方法でも、オートメーターでもかまいません。

そんなソフトがもし有れば、教えていただけると助かります。


元データ

test/motodata.txt


コピー先ディレクトリ例

test/data/aiueo/text/

test/data/kakikukeko/text/

test/data/sashisuseso/text/

(aiueo,kakikukekoの部分は、何の規則性もありませんが、data/の中の全てのディレクトリです)

Mac OS X (10.6.6)

投稿日 2011/03/01 17:09

返信
返信: 48

2011/03/01 17:54 moominpapa への返信

今ひとつやりたいことがわかりません。

単純にmotodata.txtを/data/配下の全てのフォルダ(内のtextフォルダ)にコピーしたいのでしょうか?

コピーしたいのは一つだけ?それともtestフォルダ内の全ての.txtファイル?


また、aiueo, kakikukeko等は動的に変化するものか固定されているものなのか、既に存在しているのか、動的にフォルダを作りながらコピーしたいのか、動的に作るならルールはあるのか、なども明確にした方がよいです。


作業前の状態と、作業後の状態をもう少しだけ具体的に書いた方がよいかと。

2011/03/01 18:25 Hit-C への返信

〉単純にmotodata.txtを/data/配下の全てのフォルダ(内のtextフォルダ)にコピーしたいのでしょうか?


はい。その通りです。また、コピーしたいものは一つのファイルのみです。

頻繁に書き換えるファイルがあり、上書き出来るのが望ましいです。


aiueo,kakikukekoなどは、動的に変化はしませんが、

追加されることもあるので、コマンドの実行時においての全てのディレクトリが対象になります。

中のtxtディレクトリは、必ず存在しています。

2011/03/01 20:48 ぴっぴ への返信

試したら巧く行きませんでした。コピー先は1つでないと...


Shell Scriptを作ると良いと思います。

#! /bin/bash

cp -f PathFile PathDirectoryA

cp -f PathFile PathDirectoryB

cp -f PathFile PathDirectoryC


あるいはforを使って...

#! /bin/bash

for $Data in A B C

do cp -f PathFile PathDirectory/$Data

done

2011/03/01 20:44 moominpapa への返信

ユーザがアップロードしたファイル

何のテクニックもありません。


Automatorで単純にこうやって並べればできます。


{Finder 項目をコピー}のアクションはコピペすれば簡単に増やせますし、保存先指定を変えてやるだけです。


既存のファイルを置き換えるで、上書きされます。

2011/03/01 21:55 Hit-C への返信

質問内容をもう一度書いてみます。

ディレクトリがもう一階層挟まっていました。



頻繁に更新があるファイルがあります。

test/motodata.txt


このファイルを、以下の位置にコピーしたいと思っています。

test / 以下の全てのディレクトリ(A) / 以下の全てのディレクトリ(B) / text /


Aには、200~300のディレクトリがあります。名称に規則性はありません。今後も増えます。

Bには、1~10程度のディレクトリがあります。名称に規則性はありません。今後も増えます。



コピーしたいファイル

test/motodata.txt

置き換えたいファイル

/data/aiueo/a/text/motodata.txt

/i/text/motodata.txt

/u/text/motodata.txt

/data/kakikukeko/ka/text/motodata.txt

/ki/text/motodata.txt

以下200~300続く




ターミナルで、for do cp done を使うとできるような気がしていますが、どのように記述するのかがわかりません。


説明するのって大変ですね。

せめてこちらのやりたい事だけでも理解していただけたら良いのですが…。

2011/03/01 22:45 moominpapa への返信

ディレクトリの一覧を自動取得できればいいのですが…。

ユーザがアップロードしたファイル

これでディレクトリの自動取得はできます。

とはいえ、Automatorだけでは難しいのかな?

まずはご自分でできる範囲でやりながら、いいアイディアを練るか待つかだと思います。

2011/03/01 22:47 ぴっぴ への返信

ぴっぴ様

ありがとうございます。

テストディレクトリを作成してみたところ、上手く出来ました!


上記の例に直すと、下記になります。

find ./data/*/*/text/motodata.txt -exec cp -f ./motodata.txt {} \;



また、この例は上書きにのみ使えるわけなのですが、もともと途中のディレクトリのみ存在して、ファイルが無い場合はどのように実現できるでしょうか? そういうこともたまにあるのです。



test/motodata.txt

コピー先のディレクトリ

/data/aiueo/a/text/

/i/text/

/u/text/

/data/kakikukeko/ka/text/

/ki/text/

以下200~300続く

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

同じファイルをファイル名に規則性の無い複数のディレクトリにコピーするには

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。