执行mv命令批量移动txt文件时提示“cannot overwrite non-directory with directory”错误求助
执行mv命令批量移动txt文件时提示“cannot overwrite non-directory with directory”错误求助
嗨,我来帮你搞定这个问题~
你遇到的错误是因为mv命令的参数顺序写反了!我们先理清楚mv的基本语法:mv 要移动的文件/目录 目标位置,而你现在的命令里把目标目录bkp放在了前面,要移动的txt文件{}放在了后面,这就导致mv理解成“把目录bkp移动到某个txt文件的位置”——但文件是个非目录,自然就会报错说“不能用目录覆盖非目录”啦。
给你修正后的正确命令:
find . -type f -name '*.txt' -exec mv {} bkp/ \;
这里要注意几个小细节:
- 把
{}(find找到的每个txt文件)放在mv的第一个参数位置,目标目录bkp/放在第二个位置,结尾的斜杠/可以确保mv识别到这是个目录,避免万一当前目录有个叫bkp的文件时出问题。 - 如果
bkp目录还没创建,记得先执行mkdir bkp创建它,不然mv会把txt文件直接重命名成bkp(而不是移动到目录里),这也会引发其他问题哦。
备注:内容来源于stack exchange,提问作者Subir Makur
相关产品推荐
相关产品推荐

