現在のディレクトリの内容を1レベル上に移動し、存在する場合は再帰的に上書きします。

現在のディレクトリの内容を1レベル上に移動し、存在する場合は再帰的に上書きします。

zipを現在の場所(と呼びます)で抽出し、/httpdocszip内のすべての内容はと呼ばれるディレクトリにありますmyfiles

その中には、/httpdocsディレクトリとまったく同じパスに存在する何千ものディレクトリとファイルがありますmyfiles

myfiles/httpdocsすでに存在するディレクトリ/ファイルを再帰的に置き換えている間は、ディレクトリの内容を移動する必要があります。

myfilesディレクトリから試してみると、次のようになります。

mv * ../

存在するすべてのファイルを上書きするように求められます... y / n!

以下から取得しようとすると/httpdocs

mv myfiles/* .

存在するすべてのファイルを上書きするように求められます... y / n!

-f力演算子を適用しようとすると、移動できないという結果が返されますDirectory not empty


今、私が読​​んだところによると、私がやろうとしていることは、mvそのコマンドで達成可能なようには見えません。これがおそらく私がこのコマンドでどこにも手に入らない理由です。

私は他の多くのコマンドを知っていますが、実際にディレクトリの内容を別の場所に移動しcprsync存在する場合は、繰り返し上書きするためにどのコマンドが最も適切かわかりません。


ローカルクライアントから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 ..

おすすめ記事