我有一个包含多个文件的文件夹,我想将其移动到子文件夹:
mkdir subfolder
mv ./* subfolder
但是当我这样做时,我得到了:
mv: cannot move 'subfolder' to a subdirectory of itself
我怎样才能避免这种情况?
答案 0 :(得分:3)
使用extglob
即可:
shopt -s extglob
mv !(subfolder) subfolder
全局表达式!(subfolder)
将匹配除subfolder
之外的所有内容。
答案 1 :(得分:0)
我去了:
find . -maxdepth 1 -not -name subfolder -exec mv -t subfolder {} +
虽然我仍然发现语法非常难以理解......
答案 2 :(得分:0)
嗯,我有类似的问题。尝试了几次!但是我最后还是
mkdir ../subfolder
mv * ../subfolder
mv ../subfolder .
答案 3 :(得分:0)
这是在Windows Subsystem for Linux(WSL)上吗?
如果是这样,Windows会将目录Jerry识别为等同于目录jerry,并且WSL遵循Windows的某些兼容性规则。
如果要将目录Jerry重命名为jerry,可以执行以下操作:
mv Jerry placeholder_name
mv placeholder_name jerry
答案 4 :(得分:0)
有一个简单的解决方案
mv * subfolder | mkdir subfolder
它会将文件夹中的所有文件移动到子文件夹中,不会出现任何错误。