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

こんにちは。

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


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


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

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


元データ

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/02 04:44 moominpapa への返信

Automatorの方を引き続き試しましたが、どうにもコピー出来なそうです。ファイルコピーに使えるのが1つのアクションしかないので、そのアクションに対してコピー先のパスが複数渡せません。最初の1フォルダだけにはコピーしてくれるのですが。


ちなみに余計なお世話とは思いますが、コピーが正常に完了しているかどうかはSpotlightで検索して、motodata.txtの古い日付が残っていなければ成功していることが分かります。Shell Scriptに熟達すれば、確認も必要ない(ダメならエラーがでる。)のですが、慣れないうちは確認しておくと精神的に、よろしいかと思います。

2011/03/02 05:05 ぴっぴ への返信

ぴっぴ さんによる書き込み:


モデルで確認済みです。

# text folderが空と、Fileがある場合とも...

ぴっぴ さんのShell Scriptを疑っているわけではありません^^

この先、moominpapa さんがShell Scriptを改造したときの為の、念のための書込です。Shell Scriptに熟達しているぴっぴ さんにとっては確認は不要と思います。動かなければ、エラーが出るので不要とお思いでしょうが、初心者は確認しておいた方が安全です。(なにせ私が初心者ですから^^;)

2011/03/02 05:23 ni_ki への返信

Shell Scriptに熟達しているぴっぴ さんにとっては確認は不要と思います。動かなければ、エラーが出るので不要とお思いでしょうが、初心者は確認しておいた方が安全です。(なにせ私が初心者ですから^^;)

Shell ScriptやAppleScriptを作ったら動作確認をして使うのが当たり前です。私だってミスで動かない経験は沢山あります。プログラム・ミスを修正しながらScriptを完成するのですから。なので動作確認は自ずから行うと思います。スマートでスッキリしたScriptに作り直すことだって多々あります。:-)

2011/03/02 06:00 ぴっぴ への返信

私も、これだけ一瞬で作業が完了となると、確認方法がないと不安だと思っていました。

spotlightと日付というのはなるほどその手があったかと思いました。ありがとうございます。


Automatorで、できなさそうなんですね…。

それもまた意外でした。いろいろ時間を割いていただきありがとうございます。

2011/03/02 18:09 moominpapa への返信

上にも書きましたがAutomatorでは難しそうで私にはお手上げですが、解決して良かったです。


さてApple純正のアクションではダメでも、世界中には多くの自作Automatorアクションがあります。

replace fileとかswap fileなどがあるかもしれないですので、どうしてもこだわるなら探してみるのも一つの手かもしれないですし見つけて完成されたら、ここに書き込んで頂くとうれしいです。

2011/03/02 13:20 moominpapa への返信

Automatorで、できなさそうなんですね…。それもまた意外でした。

Automatorを使いこなすには相当のスキルとテクニックが必要です。AppleScript, Shell Script, Perlなどの知識も必要です。むしろAppleScriptやShell Scriptで作ったほうが簡単かも知れません。


Package Softを知れば知るほど頑強な壁にぶち当たります。

2011/03/03 01:23 moominpapa への返信

今回の件と同じような事を「Apple Scriptで」と思われるホームページを見つけました。(英語は読めませんので内容はサッパリです^^; )

Automatorで実行できる方法は、やはり見つかりませんでした。合理的にはターミナルでコマンドを打てば一行で出来てしまうのですが、Automatorで出来ないのが寂しいなと思って探しているのですが見つかりません^^;


http://automatorworld.com/forum/topic.php?id=113

2011/03/03 01:48 ni_ki への返信

Apple Scriptでも結構ややこしいんですね。


1つのフォルダを選択した状態でペーストすると、クリップボードにある複数のファイルがコピーされるように、複数のフォルダを選択した状態でペーストすると、いっきにコピーされてもいいんじゃないかなあと思いますが、何か不都合があるのでしょうか。


上書きの是非ならアラートが出れば良いと思いますし、標準じゃなくても、そういう設定があってもいいのかなと思います。

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

moominpapa さんによる書き込み:


Apple Scriptでも結構ややこしいんですね。

今回の件はコマンドが一番簡単ですね。ちょっと慣れると、何故か判断できるのではないかと思います。(私は自分ではコマンドをまともに使えませんが、コマンドを組み合わせて容易に出来ることは判断できます^^;)

1つのフォルダを選択した状態でペーストすると、クリップボードにある複数のファイルがコピーされるように、複数のフォルダを選択した状態でペーストすると、いっきにコピーされてもいいんじゃないかなあと思いますが、何か不都合があるのでしょうか。

需要がないのかもです。Appleに要望を出してみては。

2011/03/03 04:29 ni_ki への返信

さっそく要望をだしてみました。


本日、大型書店に参考書を探しに行ったのですが、何をかったらいいのやらという感じで10冊ほど立ち読みしただけで帰ってきました。


当然かもしれませんが、Macのターミナルの解説書なんて無いんですね。

とりあえずbashの入門書でも買えばいいんでしょうか…


また、しばらくしてから行ってみようと思います。

2011/03/03 05:02 moominpapa への返信

1つのフォルダを選択した状態でペーストすると、クリップボードにある複数のファイルがコピーされるように、複数のフォルダを選択した状態でペーストすると、いっきにコピーされてもいいんじゃないかなあと思いますが、何か不都合があるのでしょうか。

fileでなくfile名のリストで、clipboardからcopy先にcopyされるだけです。


cp a b c d とするとa b cがコピー先dにcopyされますが、aを b c dに分配できません。

# a b c dはpathで指定, directoryは自由に選択可, 最後のdirectoryがcopy先として認識される


Desktopに置いたfiles... com.apple.Safari.plist com.apple.iTunes.plist com.apple.mail.plist


cd ~/Desktop

cp com.apple.Safari.plist com.apple.iTunes.plist com.apple.mail.plist ~/Library/Preferences


「Mac OS X ターミナルコマンド/ポケットリファレンス」技術評論社

古いけど今でも愛用しています。新しいコマンドは man で調べれば済みます。


「AppleScript リファレンス」があると便利 !! Shell ScriptにはAppleScriptを動かすコマンドがありますので、AppleScriptを覚えなくても済み、必要になったら調べてShell Scriptに組み込むことができます。

2011/03/03 19:19 moominpapa への返信

moominpapa さんによる書き込み:


当然かもしれませんが、Macのターミナルの解説書なんて無いんですね。

Mac専門でなくても、Linux専門とか書いてなければ、大丈夫なハズです。私が持っている物もLinuxやSolairs等に同時対応の参考書です。細かいオプションが違うことがあるようですが、大枠使い方は同じだと思います。大枠で使い方が分かればぴっぴ さんもお書きですが、manで調べたりネットで調べれば大丈夫かと。


ただしコマンドは強力ですので、間違って使わないようにテストは慎重に。

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

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

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