셸의 임시 심볼릭 링크 - "명명된 프로세스 대체" - 디스크에 복사본/심볼릭 링크를 만들지 않고 파일 이름을 바꾸시겠습니까?

셸의 임시 심볼릭 링크 - "명명된 프로세스 대체" - 디스크에 복사본/심볼릭 링크를 만들지 않고 파일 이름을 바꾸시겠습니까?

.eml 확장자가 없는 파일을 이메일 파일로 여는 대신 Thunderbird는 새 이메일 작성을 시작하여 첨부 파일로 추가합니다. 스크립트에서 Thunderbird를 사용하기 위해 저는 "일시적으로 이름을 바꾸고" Thunderbird에서 file열고 file.eml(편집용이지만 적어도 읽기용으로) 디스크에 아무것도 저장하지 않고 닫을 수 있는 방법을 찾고 있습니다 . 과정의 기억.

파일을 복사하거나 임시 위치에 파일에 대한 심볼릭 링크를 생성하면 가능합니다.프로세스 대체를 사용하는 우아한 방법이 많이 있습니다.또는여기 문자열이 있습니다대신 프로세스 기간 동안에만 존재하는 "임시 파일"을 RAM에 생성합니다.

bash/zsh에서 "pseudo-symlink"를 생성하기 위해 할 수 있는 일이 있나요?

답변1

이 시퀀스를 실행하는 스크립트를 제안하는 경우:

  1. filename다음으로 연결filename.eml
  2. Thunderbird가 열리고 filename.eml데이터와 관련된 모든 작업을 수행합니다.
  3. 1단계의 링크 실행 취소

그렇다면 하드 링크가 원하는 결과를 얻지 못하는 이유는 무엇입니까? 예를 들면 다음 ln과 같습니다 ln -s.

file_name=/path/to/file
ln "${file_name}" "${file_name}.eml"
thunderbird -arg1 -arg2 -arg-etc
rm "${file_name}.eml"

하드 링크는 추가 디스크 공간을 소비하지 않으며 단순히 파일의 inode 및 데이터에 대한 추가 파일 이름/파일 경로를 제공합니다. 디스크 I/O에 문제가 없는 한 파일 데이터를 RAM에 복사할 필요는 없습니다(그러나 파일에 .eml 확장자가 있으면 문제가 될 수 있습니다).

관련 정보