일부 파일을 복사하는 동안 텍스트 파일이 사용 중입니다.

일부 파일을 복사하는 동안 텍스트 파일이 사용 중입니다.

일부 파일을 복사하려고 할 때 이 오류가 발생합니다.

내 명령:

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에서 파일을 열면 파일의 데이터가 잠기지만 링크 해제, 이름 변경 또는 교체가 방지되지는 않습니다. 파일이 삭제되면 파일에 대한 모든 핸들이 닫히고 나면 잠긴 데이터가 하드 드라이브에서 해제됩니다.

이는 실행 시 하드 드라이브에서 자신을 삭제하지만 아무 일도 일어나지 않은 것처럼 계속 실행되는 프로그램을 작성할 수 있음을 의미합니다.

답변2

노력하다

rm -f /applis/rgedff/pur/bin/lib/libtiny.old
mv /applis/rgedff/pur/bin/lib/libtiny.a  applis/rgedff/pur/bin/lib/libtiny.old

복사하기 전에 사용하는 프로그램이 손상될 수 있다는 점을 유의하시기 바랍니다./applis/rgedff/pur/bin/lib/libtiny.a

libtiny.a는 실행 중인 프로그램에서 사용하는 공유 라이브러리이므로 Linux에서 사용 중인 파일은 삭제할 수 없습니다.

보다 정확하게는 이러한 파일을 삭제하면 파일 이름이 디렉터리에서 제거되는 반면, 파일 데이터는 실행 중인 프로세스에서 해당 파일을 사용하는 한 파일 시스템에 남아 있습니다.

관련 정보