我有一个主目录主目录和子目录v1,v2,v3都包含相同的文件。我重命名v3:mv v3 v3_old
并重新创建它mkdir v3
。我的工作然后在主目录。
到目前为止,一切看起来都如预期的那样。
命令mv *.* v3
(来自主目录)按预期移动文件,但是也v3_旧里面v3. (我总是mv *.* v...
在将文件从主目录到非常...并且在这次重命名之前它一直运行良好)。
正如预期的那样,v1和v2沒有被移動。
这是为什么?
谢谢!
答案1
这*.*
看起来像是 DOS 习惯选择文件而不选择目录。在现代文件系统中,它将选择当前目录中名称中包含 的所有项目.
。我猜你的目录“v3_old”的实际名称包含一个句点字符。
如果找不到仅匹配文件的模式匹配序列,则可以查看此答案以仅移动文件:https://unix.stackexchange.com/questions/147290/move-every-file-that-is-not-a-directory
否则,如果您习惯使用,则可以对 v3_old 使用不带句点的目录名*.*
。其他习惯可以是,例如,文件名以小写字母开头,目录名以大写字母开头:这样mv [a-z]* v3
就可以了。(它还使目录导航和自动完成功能更容易)