zipを現在の場所(と呼びます)で抽出し、/httpdocs
zip内のすべての内容はと呼ばれるディレクトリにありますmyfiles
。
その中には、/httpdocs
ディレクトリとまったく同じパスに存在する何千ものディレクトリとファイルがありますmyfiles
。
myfiles
/httpdocs
すでに存在するディレクトリ/ファイルを再帰的に置き換えている間は、ディレクトリの内容を移動する必要があります。
myfiles
ディレクトリから試してみると、次のようになります。
mv * ../
存在するすべてのファイルを上書きするように求められます... y / n!
以下から取得しようとすると/httpdocs
:
mv myfiles/* .
存在するすべてのファイルを上書きするように求められます... y / n!
-f
力演算子を適用しようとすると、移動できないという結果が返されますDirectory not empty
。
今、私が読んだところによると、私がやろうとしていることは、mv
そのコマンドで達成可能なようには見えません。これがおそらく私がこのコマンドでどこにも手に入らない理由です。
私は他の多くのコマンドを知っていますが、実際にディレクトリの内容を別の場所に移動しcp
、rsync
存在する場合は、繰り返し上書きするためにどのコマンドが最も適切かわかりません。
ローカルクライアントからFTP経由でアップロードし、上書き/httpdocs
ダイアログボックスで「すべて同意する」を選択すると、これを簡単に実行できることがわかりますが、時間がかかるため、必ずしも実用的ではありません。同様の効果が生じることを追求するだけです。コマンドラインを介して。
ベストアンサー1
以下で議論するようにこの問題、このmv
コマンドは、既存のファイルを上書きしてディレクトリを「マージ」する方法を直接提供しません。
cp
コマンドはrm
同等の代替として一緒に使用できます。この場合、コマンドは次のようになります。
cd /path/to/httpdocs
cp -r myfiles/* .
rm -r myfiles/
注:このcp
コマンドはデフォルトで既存のファイルを上書きします。 OPにはプロセスを妨げるエイリアスがあります。このcp
コマンドの別名は、cp -i
オーバーライドするたびにインタラクティブな確認が必要であることです。unalias cp
最初に実行するか、構文を使用してそれをオーバーライドできます\cp -r ..
。