GUI環境でドラッグアンドドロップに置き換えると、ファイルとディレクトリ全体(コンテンツを含む)がコピーされたコンテンツに置き換えられます。 "mv"コマンドを使用して同じ直感的な結果を得る方法はありますか?
ベストアンサー1
mv
.
(名前にもかかわらず)コア機能mv
は名前を変更する一つ。 UNIXが保証するものの1つは、名前の変更がアトミックであることです。つまり、部分的に完了した名前の変更は表示されません。この保証は、たとえば、他のプログラムで表示されるファイルを変更し、/etc/passwd
そのファイルの古いバージョンまたは最新バージョンを表示したい場合に便利です。そして他の可能性はありません。。しかし、あなたが説明する「再帰的な名前の変更」は保証を破ります。途中で止めると、乱雑になることができる半分の動く木が得られるので、この哲学には実際には適していませんmv
。mv -r
これが存在しない理由の私の推測は次のとおりです。
(これはmv
他のより小さな方法でアイデアを壊すことに注意しないでください。たとえば、ファイルがあるファイルシステムから別のファイルシステムに移動した場合は、実際には実行されますmv
。cp
)rm
哲学は十分です。ある場所から別の場所にツリーを再帰的に移動(「ドラッグアンドドロップ」)したい場合同じファイルシステムで、mv
次のような効率と速度が得られます(例:)。
cp -al source/* dest/ && rm -r source/*
-l
to フラグは、cp
「コピーではなくハードリンクの生成」を意味します。つまり、古いファイル名と同じファイルデータを指す新しいファイル名を効果的に生成します。ただし、これはハードリンクをサポートするファイルシステムでのみ機能します。したがって、すべてのデフォルトのUNIXスタイルファイルシステムでは機能しますが、FATでは機能しません。
&&
「前のコマンドが成功した場合にのみ、次のコマンドを実行してください」を意味します。必要に応じて、両方のコマンドを同時に実行できます。