一部のファイルをコピーしようとすると、このエラーが発生します。
私のコマンド:
cp -rf /sasech/xgedff/pur/liv/v15h30050-DLIV0177521/dmesa/bin/* /applis/rgedff/pur/bin
結果:
cp: /applis/rgedff/pur/bin/../bin/lib/libtiny.a: Text file busy
...
私のファイルをどのようにコピーしますか?
ベストアンサー1
NFSやSSHトンネリングなどの接続を介してあるハードドライブから別のハードドライブにファイルをコピーすると、この問題が発生しました。
コピーされるファイルはターゲットディレクトリの一部になります。これは、ターゲットディレクトリをロックし、新しい情報で更新してロックを解除する必要があることを意味します。
次のファイル(あなたの場合libtiny.a
)が早すぎる場合は、ディレクトリをロックしようとし、「ファイル使用中」エラーが原因で失敗します。これにより、ファイルや他のすべてのアイテムがコピーされるのを防ぎます。
静的ライブラリなので、libtiny.a
コピーでロックする理由はありません。私が知っている限り、コンパイラは作業中のファイルをロックせず、実際にターゲットディレクトリから何かをコンパイルする場合にのみ発生します。
今、すべてのディスクノーマルファイルシステムNTFSを使用している場合、ファイルが開いている間はシステムがそれを許可しないため、ファイルを置き換えることはできません。
Linux でファイルを開くと、ファイル内のデータはロックされますが、リンクの解除、名前の変更、または置き換えは防止されません。ファイルが削除されると、ファイルへのすべてのハンドルが閉じられた後、ロックされたデータはハードドライブから解放されます。
これは、実行中にハードドライブから自分自身を削除しますが、何も起こらなかったかのように実行され続けるプログラムを作成できることを意味します。