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