/tmp 파일에 대한 링크가 제거됩니까?

/tmp 파일에 대한 링크가 제거됩니까?

을 사용하여 임시 디렉토리를 생성하는 스크립트가 있습니다 mktemp -d.

임시 디렉터리에 생성된 폴더는 스크립트의 출력이며 컴퓨터의 다른 부분에 복사됩니다.

ln내용을 다른 곳에 복사하는 대신 동일한 폴더를 사용할 생각입니다 . /tmp운영 체제에서 폴더를 정리한 경우 디렉터리의 폴더 버전이 여전히 존재하는지 궁금합니다 .

답변1

임시 디렉터리의 위치에 따라 다릅니다. 즉, 임시 디렉터리를 직접 만들었나요, 아니면 시스템의 ( /tmp)를 사용하고 있나요?

귀하의 시나리오에서는 임시 디렉터리를 정리한 후 파일/폴더를 유지하려고 합니다.

시스템 디렉터리에 있으면 /tmp시스템에 의해 정리될 가능성이 높습니다(배포판에 따라 다르지만 대부분 cron직업이나 이와 유사한 것이 있습니다).

또한 일부 배포판에서는 /tmp다음 방법을 사용하여 디렉터리를 생성합니다 tmpfs. 이는 콘텐츠가 RAM/스왑에 저장되고 재부팅 시 저장할 수 없음을 의미합니다.

생성하는 경우에만딱딱한협회. 그러나 하드 링크는 마운트된 단일 파일 시스템 내에서만 생성될 수 있습니다. 예를 들어 에 마운트된 tmpfs /tmp파일 시스템에 대한 하드 링크를 생성 할 수 없습니다.ext4/mystuff

당신은 만들 수 있습니다부드러운설치 위치의 어딘가 로 연결되지만 /mystuff임시 파일이 삭제되면 링크는 "nowehere"를 가리키게 됩니다. 이로 인해 개체가 약간 손상됩니다.tmpfs/tmp

배포판이 /tmp파일을 저장하려는 위치( /mystuff)와 동일한 물리적 디스크에 파일을 저장하는 경우 시스템 정리 전에 링크가 생성되는 한 하드 링크는 작동합니다 /tmp.

답변2

나는 일을 더 명확하게하기 위해 예를 들었습니다.

특정 디렉터리에 2개의 파일을 생성했습니다.

cat sourcefile
This is the sourcefile. 
##This is to create a hard link. 

ln sourcefile destfile

##List the files available. 
ls
destfile  sourcefile

cat destfile
This is the sourcefile. 

이제 당신이하드 링크위에서 참조한 디렉터리의 파일과 마찬가지로 /tmp소스 파일을 삭제하면 어떻게 되는지 살펴보겠습니다.

rm sourcefile
rm: remove regular file `sourcefile'? y
ls
destfile
cat destfile
This is the sourcefile

위의 경우에도 destfile접속은 가능합니다.

이제 소프트 링크를 사용하면 어떤 일이 발생하는지 살펴보겠습니다.

cat sourcefile
This is the sourcefile for softlink example. 
ln -s sourcefile destfile
ls -l
total 4
lrwxrwxrwx 1 root root 10 Jun 26 13:40 destfile -> sourcefile
-rw-r--r-- 1 root root 46 Jun 26 13:40 sourcefile

이제 귀하의 경우에는 소스 파일을 삭제하고 어떤 일이 일어나는지 살펴보겠습니다.

rm sourcefile
rm: remove regular file `sourcefile'? y
ls
destfile
cat destfile
cat: destfile: No such file or directory

따라서 소프트 링크를 사용하면 데이터가 존재하지 않을 수 있습니다.

편집하다

mktemp다음을 사용하여 임시 파일을 만들었습니다 .하드 링크/tmp내 작업 디렉터리 중 하나 에 디렉터리를 추가합니다.

다시 시작한 후에도 콘텐츠를 사용할 수 있는지 확인하기 위해 컴퓨터를 다시 시작했습니다. 내가 사용한다면하드 링크, 다시 시작한 후에도 콘텐츠를 사용할 수 있습니다. 이를 확인하는 이유는 일반적으로 재부팅 시 /tmp디렉터리가 지워지기 때문입니다.

관련 정보