각 파일이 하드 링크라는 것을 알고 있습니다. 의미는 다음과 같습니다. 하나의 inode에 여러 개의 파일이 이를 가리키는 경우 각 파일이 동일한 내용을 가진 별도의 inode를 가리키도록 해당 inode를 어떻게 복제합니까?
예를 들어:
echo "Example" > one
ln one two
inode를 공유하지 않고 파일의 two
내용을 동일 하게 만들려면 어떻게 해야 합니까? one
원한다면 파일을 "복제"하고 싶습니다.
답변1
이는 다음 명령으로 달성할 수 있습니다.
find -samefile filename -exec sed -i ';;' {} \;
또는 이제 파일의 inode 번호를 알고 있는 경우
find -inum inode -exec sed -i ';;' {} \;
이 두 명령은 현재 작업 디렉터리의 하위 디렉터리에서 일치하는 inode가 있는 파일만 찾습니다. 파일 시스템의 모든 파일을 검색해야 하는 경우 루트 디렉터리에서 이 명령을 실행해야 합니다.
첫 번째 부분은 find -samefile filename
동일한 inode를 공유하는 모든 파일을 찾습니다. 그런 다음 sed -i ';;'
동일한 이름을 가진 파일에 파일 복사를 수행합니다 ( ';;'
대신 sed 스크립트를 사용하고 있습니다 ';'
. 그렇지 않으면 인수가 명령의 끝으로 find
해석됩니다 ).;
-exec