Linuxシェル - 予期しないエラー

Linuxシェル - 予期しないエラー

私はLinuxとコマンドの世界に初めて触れました。私は2つのディレクトリを持っています。 1つはpasta(3つのファイルを含みます)、もう1つはpasta2(何もありません)。 findコマンドを使用して3つのファイルをすべてからpastapasta2ただし、次のエラーが発生します。どんな提案がありますか?

注文する:

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 

エラーなしで実行する必要があります。

関連情報