• ベストアンサー

複数サブフォルダがあるフォルダの中で、あるサブフォルダ以外のものをすべて別のフォルダにいどうさせるコマンド

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

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

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

ええ、まさにその通りです。 echo * は何らかの理由(ディスクのパーティションが壊れたなど)でlsコマンドが使えなくなったときに非常措置で使う手です。 バッククォート` `で囲まれた部分は、囲まれた部分のコマンドの実行結果に置き換わるという意味です。 ところで、 mv a1 .a1 && mv * BBB && mv .a1 a1 でも行けますね。

daipot
質問者

お礼

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

その他の回答 (1)

回答No.1

もっと簡単に出来る方法もある気もしますが、私が思いついた方法をお知らせします。 cd AAA mv `echo * | sed 's/a1//'` BBB

daipot
質問者

補足

ありがとうございます。無事できましたが、最後に一つだけご説明いただけないでしょうか。 以下のような順序でコンピュータの処理が実行されるということでよろしいですか。 1.「*」で引数がa1, a2, a3となる。 2.sed 's/a1//'` でこのうちa1を「無いもの」に置き換える。 3.echoでa2, a3がmvコマンドに渡される。 4.「mv a2, a3」の処理がコンピュータ内で実行される。

関連するQ&A