我是 Linux 和命令世界的新手。我有两个目录,一个叫pasta
(包含 3 个文件),另一个叫pasta2
(里面什么也没有)。我正在尝试使用 find 命令将所有 3 个文件从 移动pasta
到。pasta2
但我收到以下错误。有什么建议吗?
命令:
find pasta -type f -exec mv pasta2 {} \;
我得到这个输出:
mv: cannot overwrite non-directory `pasta/tmp3' with directory `pasta2'
mv: cannot overwrite non-directory `pasta/tmp1' with directory `pasta2'
mv: cannot overwrite non-directory `pasta/tmp2' with directory `pasta2'
答案1
你的语法mv
错误。它应该是:
mv source destination
你在跑步
mv destination source
因此,该find
命令实际上正在运行
mv pasta2 pasta/tmp3
mv pasta2 pasta/tmp2
mv pasta2 pasta/tmp1
它抱怨您试图mv
用常规文件覆盖 ( ) 目录。你真正想做的是
find pasta -type f -exec mv {} pasta2 \;
这将执行
mv pasta/tmp3 pasta2
mv pasta/tmp2 pasta2
mv pasta/tmp1 pasta2
运行应该没有错误。