更新:正如@ctrl-alt-delor 提到的,这是因为我所在的文件系统(fuseblk)是“保留大小写”但“忽略大小写”。
=====
我知道这不是一个大用例,但至少要了解问题的根源,因为我经常这样做:
mv
和mkdir
/或过程中涉及的外壳中的其他mkdir
内容区分大小写并导致我出现错误:
x@host :/ $ ls
Dir
x@host :/ $ mv Dir/ dir
mv: cannot move 'Dir/' to a subdirectory of itself, 'dir/Dir'
x@host :/ $ mkdir dir
mkdir: cannot create directory ‘dir’: File exists
是否有一个简单的技巧可以在一个命令中完成此操作?
PS:我发现最快的方法是
mkdir tmp ; cd tmp ; mkdir dir ; mv ../Dir/* dir/ ; cd .. ; rm -r Dir ; mv tmp/dir . ; rm -r tmp
配置:Ubuntu 18.04
首先,您不应该为您的主目录使用胖文件系统;使用 ext4。
这是我所知道的最简单、最快捷的方法(它的时间和内存复杂度为 O(1): no copying )
如果您
mv
不支持-T
,那么您可以不安全地将其排除在外。Gnumv
确实支持它。