Bash move*到子文件夹失败:无法移动到自身的子目录
我有一个包含多个文件的文件夹,我想将其移动到子文件夹:Bash move*到子文件夹失败:无法移动到自身的子目录,bash,Bash,我有一个包含多个文件的文件夹,我想将其移动到子文件夹: mkdir subfolder mv ./* subfolder 但当我这样做时,我得到: mv:无法将“子文件夹”移动到其自身的子目录中 如何简单地避免这种情况?使用extglob可以做到: shopt -s extglob mv !(subfolder) subfolder 全局表达式!(子文件夹)将匹配除子文件夹之外的所有内容 find-maxdepth 1-非-name子文件夹-exec mv-t子文件夹{}+ 虽然我仍然觉得
mkdir subfolder
mv ./* subfolder
但当我这样做时,我得到:
mv:无法将“子文件夹”移动到其自身的子目录中
如何简单地避免这种情况?使用
extglob
可以做到:
shopt -s extglob
mv !(subfolder) subfolder
全局表达式!(子文件夹)
将匹配除子文件夹之外的所有内容
find-maxdepth 1-非-name子文件夹-exec mv-t子文件夹{}+
虽然我仍然觉得语法很难理解…嗯,我也有类似的问题。我试了几次!但我最终还是
mkdir ../subfolder
mv * ../subfolder
mv ../subfolder .
这是在Windows Linux子系统(WSL)上实现的吗 如果是这样,Windows会将目录Jerry识别为等同于目录Jerry,并且WSL遵循某些Windows规则以实现兼容性 如果要将目录Jerry重命名为Jerry,可以执行以下操作:
mv Jerry placeholder_name
mv placeholder_name jerry
我不确定我会称之为“失败”,确切地说。其他所有的东西都被移动了,不是吗?只是从命令中抑制stderr,它可能移动了所有的文件,
mv./*子文件夹2>/dev/null
是的,但是显然命令退出时状态为0
我是说非零代码如何写mv!(子文件夹)bash中的子文件夹。。。它在“(“确保您正在使用extglob”)附近显示预期的命令。这不会移动以.For开头的隐藏文件,以启用点glob选项