- ベストアンサー
複数サブフォルダがあるフォルダの中で、あるサブフォルダ以外のものをすべて別のフォルダにいどうさせるコマンド
タイトルの通りですが、AAA, BBBというディレクトリがあり、AAAの中にはa1,a2,a3…と複数のファイル・ディレクトリがあります。このうち、a1以外のすべてをBBBに移動させるにはどのようなコマンドになるのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ええ、まさにその通りです。 echo * は何らかの理由(ディスクのパーティションが壊れたなど)でlsコマンドが使えなくなったときに非常措置で使う手です。 バッククォート` `で囲まれた部分は、囲まれた部分のコマンドの実行結果に置き換わるという意味です。 ところで、 mv a1 .a1 && mv * BBB && mv .a1 a1 でも行けますね。
その他の回答 (1)
- ninja_ex250
- ベストアンサー率48% (46/95)
回答No.1
もっと簡単に出来る方法もある気もしますが、私が思いついた方法をお知らせします。 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」の処理がコンピュータ内で実行される。
お礼
ご解説と新しいコマンドありがとうございます。 mv a1 .a1 && mv * BBB && mv .a1 a1 mvではドットファイルは移行されないのでしょうか。いろいろと勉強になりました。いろいろなコマンドがあって(&& パイプ、echo等)、どのコマンドが優先的に実行されるのかということも勉強したいと思います。