mvコマンドを実行すると「inter-device move failed, unable to remove target」というエラーになる場合があります。原因は、異なるデバイスブロックを跨いでmvコマンドを叩こうとした為です。異なるデバイスブロックとは、分かり易いのは外付けHDD。本体のHDDから外付けHDDにに対してmvを叩くとこのエラーになってしまいます。
この原因は、mvコマンドの仕様にあります。mvコマンドではinode番号もそもまま移動させるためです。今回の場合、デバイス内で割り振られているinode番号はデバイスを跨いで同じinodeを保持出来ないため、エラーが発生します。
対処法としては、cpコマンドを利用すればOKです。cpコマンドはcpの名の通り、inode番号も変更してコピーしてくれます。
linuxの場合は、df -h で確認すると、別デバイスかどうかの確認ができます。
mvのソースとディスティネーションが別でバイスに無いか確認して見ましょう。
ちなみに、cpとmvコマンドの違いの話も発展してくるので今度しっかりと調べようと思います。
[amazonjs asin=”4797307714″ locale=”JP” title=”Linuxコマンドスーパーリファレンス”]