Linux shell - 意外错误

Linux shell - 意外错误

我是 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 

运行应该没有错误。

相关内容