我的旧目录和新目录中包含相同的文件夹和文件。
我试试:
mv -if old/* new/*
并收到错误
mv:无法将./xxxxxx'移动到自身的子目录
我该如何移动它?
答案 0 :(得分:30)
您应该使用mv -if old/* new/
而不使用尾随*
。
这是因为它展开了
mv -if old/foo old/bar old/baz new/foo new/bar new/baz
即。把一切都变成新的/ baz
这不是你想要的。
答案 1 :(得分: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
有效。你想要实现什么目标?您能否写一个简短的例子来说明输入数据应该是什么样的以及输出数据应该是什么样的?事实是我不知道你想要做什么:)帮助我帮助你。
答案 2 :(得分:3)
请注意mv a / * b /不要移动文件。*(文件名以'。'开头)在/ to b /
例如:
$ mkdir -p a/d b && touch a/f a/.f a/d/.f
$ mv a/* b/
$ ls -a a/
. .. .f
答案 3 :(得分:1)
如果要从ext2 / 3/4文件系统复制到FAT32文件系统,并且文件名具有FAT32命名约定的无效字符,则会出现这种非常烦人且不正确的地狱错误消息。我怎么知道?我对这个错误进行了摔跤 - 是的,它是一个KERNEL BUG--在它突然出现之前已经有6个小时了。我认为这是一个shell解释器错误,我认为这是一个“mv”错误 - 我尝试了多个不同的shell,一切。试试这个实验:在一个ext文件系统上,“触摸'a:b'”将它们“mv”到FAT32文件系统。尝试一下,你会喜欢(讨厌)结果。 '<'也是如此和'>' (\ 074和\ 076)。
感谢“男人mv” - 这是一个真正的大帮助,不要放弃你的日常工作。
答案 4 :(得分:1)
你可能得到了答案,但上面的答案对我不起作用......最后大量的研究我得到了答案。 (问题归因于文件所有权)
并在命令及其工作之前放置sudo .... :)同样的事情为cp和mv命令。
sudo mv -if old/* new/