Answers:
您的
mv * ./new_directory命令实际上会起作用;它只会显示一条警告,提示它无法将该目录移入自身。
git mv
必须使用该-k
标志,因为git默认会失败,而不仅仅是发出警告。所以你需要做git mv -k * ./new_dir
。
快速又脏的oneliner。
mv `ls -A | grep -v new_directory` ./new_directory
如果您只是在寻找文件(即不是目录),那么
find . -type f -maxdepth 1 -exec mv {} ./new_directory/ \;
是最便携式的解决方案。为了提高速度,您应该使用-print0和-0来移动find和xargs,但前提是您拥有GNU find和xargs。
find
-可悲的是,尽管我肯定使用过没有的系统:(
我的建议:正如其他人所说,
mv * ./new_directory
可以找到IFF的总扩展量足够短。
否则,您可以尝试将其缩放到更大数量的文件:
find . -type f -maxdepth 1 | xargs -s100000 echo | xargs -iXXX mv XXX new_directory
说明
-print0
和-0
它仍然中断。