2012-11-04 3 views
0

하나의 파일에 다른 하드 링크가 있습니다. 다른 하드 링크의 내용을 변경하지 않고 Java에서 첫 번째 파일을 변경하는 방법은 무엇입니까?다른 하드 링크의 내용을 변경하지 않고 Java에서 한 파일을 변경하는 방법은 무엇입니까?

이 문제는 Windows에서 GVIM 같다 : file1의 크기와 file2의 크기가 지금은 다른

C:\Users\atry\break-hard-link>echo Hello, World > file1 

C:\Users\atry\break-hard-link>mklink /H file2 file1 
为 file2 <<===>> file1 创建了硬链接 

C:\Users\atry\break-hard-link>gvim file1 :: Change file1 in gVim 

C:\Users\atry\break-hard-link>dir 
驱动器 C 中的卷没有标签。 
卷的序列号是 B2F2-1B6E 

C:\Users\atry\break-hard-link 的目录 

2012-11-04 11:33 <DIR>   . 
2012-11-04 11:33 <DIR>   .. 
2012-11-04 11:33     8 file1 
2012-11-04 11:32    15 file2 
       2 个文件    23 字节 
       2 个目录 365,748,248,576 可用字节 

하는 것으로.

나는 new java.io.FileOutputStreamjava.nio.file.Files.newOutputStream, 을 시도했지만 두 방법은 file1file2 모두 수정했습니다.

gVim의 기능을 알고 싶습니다. Java 응용 프로그램에서 동일한 동작을 적용하고 싶습니다.

+0

동일한 파일 인 경우 어떻게 한 파일의 내용을 변경하지 않고 다른 내용을 변경할 수 있습니까? –

+0

'gVim'은 파일을 저장할 때 하드 링크를 해독합니다. 그리고이 행동은 내가 원하는 것입니다. –

답변

1

내가 GVIM이 있지만이 작업을 수행 할 수있는 신뢰할 수있는 방법이

  1. 이다 않는 방법을 모른다 이전 파일
  2. 가에 데이터를 복사 (이 사용자가 선택한 링크 만 이름을 바꿀 것)의 이름을 이전 이름으로 새 파일
  3. 새 파일이 생성 된 확실하고 성공적으로 종료
  4. 는 휴식하는 데 필요한 사항이다 (이전 파일

에게 새로운 아이 노드를 얻을 수있는 유일한 방법을 제거 링크)는 m입니다. 새 데이터 사본.

관련 문제