Unix mv *.* 也移动子目录

Unix mv *.* 也移动子目录

我有一个主目录主目录和子目录v1v2v3都包含相同的文件。我重命名v3mv v3 v3_old并重新创建它mkdir v3。我的工作然后在主目录

到目前为止,一切看起来都如预期的那样。

命令mv *.* v3(来自主目录)按预期移动文件,但是也v3_旧里面v3. (我总是mv *.* v...在将文件从主目录非常...并且在这次重命名之前它一直运行良好)。

正如预期的那样,v1v2沒有被移動。

这是为什么?

谢谢!

答案1

*.*看起来像是 DOS 习惯选择文件而不选择目录。在现代文件系统中,它将选择当前目录中名称中包含 的所有项目.。我猜你的目录“v3_old”的实际名称包含一个句点字符。

如果找不到仅匹配文件的模式匹配序列,则可以查看此答案以仅移动文件:https://unix.stackexchange.com/questions/147290/move-every-file-that-is-not-a-directory

否则,如果您习惯使用,则可以对 v3_old 使用不带句点的目录名*.*。其他习惯可以是,例如,文件名以小写字母开头,目录名以大写字母开头:这样mv [a-z]* v3就可以了。(它还使目录导航和自动完成功能更容易)

相关内容