プロが教えるわが家の防犯対策術!

タイトルの通りですが、AAA, BBBというディレクトリがあり、AAAの中にはa1,a2,a3…と複数のファイル・ディレクトリがあります。このうち、a1以外のすべてをBBBに移動させるにはどのようなコマンドになるのでしょうか。

A 回答 (2件)

もっと簡単に出来る方法もある気もしますが、私が思いついた方法をお知らせします。



cd AAA
mv `echo * | sed 's/a1//'` BBB

この回答への補足

ありがとうございます。無事できましたが、最後に一つだけご説明いただけないでしょうか。

以下のような順序でコンピュータの処理が実行されるということでよろしいですか。
1.「*」で引数がa1, a2, a3となる。
2.sed 's/a1//'` でこのうちa1を「無いもの」に置き換える。
3.echoでa2, a3がmvコマンドに渡される。
4.「mv a2, a3」の処理がコンピュータ内で実行される。

補足日時:2005/02/04 08:23
    • good
    • 0

ええ、まさにその通りです。



echo * は何らかの理由(ディスクのパーティションが壊れたなど)でlsコマンドが使えなくなったときに非常措置で使う手です。

バッククォート` `で囲まれた部分は、囲まれた部分のコマンドの実行結果に置き換わるという意味です。

ところで、

mv a1 .a1 && mv * BBB && mv .a1 a1

でも行けますね。
    • good
    • 0
この回答へのお礼

ご解説と新しいコマンドありがとうございます。
mv a1 .a1 && mv * BBB && mv .a1 a1

mvではドットファイルは移行されないのでしょうか。いろいろと勉強になりました。いろいろなコマンドがあって(&& パイプ、echo等)、どのコマンドが優先的に実行されるのかということも勉強したいと思います。

お礼日時:2005/02/05 18:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!