25

私の古いディレクトリと新しいディレクトリには、同じフォルダーとファイルが含まれています。

私は試します:

mv -if old/* new/*

エラーが発生します

mv: `./xxxxxx' をそれ自体のサブディレクトリに移動することはできません

どうすれば移動できますか?

4

5 に答える 5

30

mv -if old/* new/末尾の なしで使用する必要があります*

これは、展開したためです。

mv -if old/foo old/bar old/baz new/foo new/bar new/baz

つまり、すべてを new/baz に移動します

これはあなたが望んでいたものではありません。

于 2009-05-15T11:43:24.537 に答える
5
reef@localhost:/tmp/experiment$ ls a
11  22  33
reef@localhost:/tmp/experiment$ ls b
22  33
reef@localhost:/tmp/experiment$ ls
a  b
reef@localhost:/tmp/experiment$ mv a/* b
reef@localhost:/tmp/experiment$ ls a
reef@localhost:/tmp/experiment$ ls b
11  22  33

できます。あなたは何を達成しようとしていますか?入力データがどのように見えるべきか、出力データがどのように見えるべきかの簡単な例を書いていただけますか? 真実は、あなたが何をしようとしているのかわからないということです:)助けてください。

于 2009-05-16T10:11:16.497 に答える
4

mv a/* b/ は、a/ のファイル .* (「.」で始まるファイル名) を b/ に移動しないことに注意してください。

元:

$ mkdir -p a/d b && touch a/f a/.f a/d/.f
$ mv a/* b/
$ ls -a a/
.  ..  .f
于 2013-04-04T10:03:14.833 に答える
1

あなたは答えを得たかもしれませんが、上記の答えは私にはうまくいきません....そして最終的に私は答えを得ました。(問題はファイルの所有権によるものです)
そして、コマンドとその動作の前にsudoを置くだけです...:)cpとmvコマンドについても同じです。

sudo mv -if old/* new/
于 2012-12-11T06:05:24.670 に答える
1

ext2/3/4 ファイル システムから FAT32 ファイル システムにコピーしていて、ファイル名に FAT32 命名規則に対して無効な文字が含まれている場合、この非常に煩わしく、間違ったエラー メッセージが表示されます。どうすればわかりますか?私はこのバグに取り組んでいました - はい、それはカーネルのバグです - 私に夜明けする前に 6 時間。これはシェル インタープリター エラーだと思いました。「mv」エラーだと思いました。複数の異なるシェルをすべて試しました。この実験を試してみてください: ext ファイル システムで、"touch 'a:b'" を FAT32 ファイル システムに "mv" します。試してみてください。結果を楽しむ (嫌う) でしょう。'<' と '>' (\074 と \076) も同様です。

「man mv」に感謝します。これは本当に大きな助けになります。日常の仕事をやめないでください。

于 2010-06-13T23:37:48.550 に答える