파일을 하드 링크로 복사하기


3

나는 최근에 내 bash 스크립트에서 오해하고 조금 궁금 해서요 :

  1. 이것은 예상 된 시스템 동작입니까 아니면 버그입니까?
  2. 이상적인 해결 방법은 무엇입니까?

본질적으로, 문제는 이것으로 끝났다. 먼저 다음 레이아웃을 가진 기존 디렉토리 구조가 있습니다.

  • /opt/dir/file.a
  • /opt/dir/file.b
  • /opt/dir/file

어디에 file ~이다. 하드 링크 file.a. 나는 대신하고 싶었다. file 선택한 쉘 스크립트로 file.a 또는 file.b 매개 변수에 따라 다음과 같이 실행했습니다.

cp my_file /opt/dir/file

문제는 file 에 대한 하드 링크입니다. file.a, (두 파일이 실제로 동일한 inode에 대해 단지 두 개의 이름이라는 것을 의미), 변경 사항은 filefile.a. 이했다 명백하게 내가 원하는 걸

그것은 보인다. cp 효과적으로 연계 된 명령 /opt/dir/file truncate 파일 플래그를 다음과 같이 지정합니다. fopen("file", "w+"). 그것을 썼다. 내가 하드 링크를 끊기를 기대하고 있었다. 새로운 그 이름으로 파일.

이것이 올바른 것일까? cp? 그것은 나에게 비현실적으로 보인다. 한 위치에서 다른 위치로 파일을 복사 할 때 내 마음에 그것을 다시 쓰지 않고 대체합니다. 거기에 대한 플래그가 있습니까? cp 이걸 피하려면? 현재 해결해야 할 점은 rm /opt/dir/file && cp my_file /opt/dir/file.

맨 페이지를보고 등장하다 cp --remove-destination my_file /opt/dir/file 올바른 해결책 일지 모르지만 나는 여전히 모든 사람들이 주제에 대해 말하고 싶은 것에 관심이있다.


실제로 그것은 나를 위해 매우 직관적입니다. 그것은 같은 파일입니다. 동일한 파일에 씁니다. 두 위치 모두 업데이트 된 컨텐츠를 얻습니다. 그러나 직관적 인 것은 사람마다 다를 것이며 분명하고 완벽한 답변을 제공하기가 어렵습니다. 단지 의견. IMHO는 주제를 벗어난 것으로 만듭니다.
Hennes

@Hennes, 귀하의 회신에 감사드립니다. 나는 "대답하기 어렵다"와 "화제를 벗다"의 차이가 있다고 말할 것이다. 확실히 대답은 "주로 의견을 기반으로"할 수 있지만 그것은 다른 이야기입니다. 내가 직관적이지 못한 이유를 분명히하고 싶습니다. 나는 하나의 글쓰기가 둘 다 업데이트된다는 것을 안다. 그러나 내 사본의 정신적 인 이미지는 대상을 "대체"하는 것이지 "업데이트"하는 것이 아닙니다. 그러나, 나는 당신의 요점을 이해 /
Evan Teran

나는 그 질문이 대답하기가 어렵고, 의견을 가지며, 흥미 있고 잘 쓰여졌다고 생각한다. 나에게 그 중 3 가지는 좋은 질문이된다. 수퍼 유저 . Is there a flag for cp to avoid this? 그것을 실제 답할만한 질문으로 만듭니다. (당신이 자기 대답).
Hennes

답변:


2

당신이 묘사하는 것은 올바른 행동입니다. cp, 아니 버그. 당신이 찾고있는 결과, 스크립트 수정 ( rm 뒤이어 cp ) 올바른 접근법처럼 들립니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.