파일을 만들 때마다 데이터를 가져 와서 /path/to/data/folder/month/date/hour/minute/file
심볼릭 링크하고 /path/to/recent/file
자동으로 수행 하고 싶습니다 .
/path/to/recent/file
존재하는 경우 미리 알지 못한다고 가정하면 (존재하지 않는 경우) 작성하거나 존재하는 경우 교체하는 방법은 무엇입니까? 나는 그것이 존재하는지 확인한 다음 삭제, symlink를 수행 할 수 있다고 확신하지만 한 단계에서 원하는 것을 수행하는 간단한 명령이 있는지 궁금합니다.
답변
ln -sfn /new/target /path/to/symlink
$ 남자 ln
-n, –no-dereference
는 LINK_NAME이 디렉토리에 대한 심볼릭 링크 인 경우 일반 파일로 취급합니다.
답변
이것은의 목적이다 ln
의의 -f
옵션 :이 링크를 작성하기 전에 기존 대상 파일을,있는 경우 제거합니다.
ln -sf /path/to/data/folder/month/date/hour/minute/file /path/to/recent/file
을 /path/to/recent/file
가리키는 심볼릭 링크를 만들어 /path/to/data/folder/month/date/hour/minute/file
기존 파일이나 파일에 대한 심볼릭 링크를 필요한 경우 바꿉니다 (아직 아무것도 없으면 정상적으로 작동합니다).
디렉토리 또는 디렉토리에 대한 심볼릭 링크가 이미 대상 이름으로 존재하는 경우 심볼릭 링크가 그 안에 작성됩니다 (따라서 /path/to/recent/file/file
위의 예에서 끝납니다 ). 의 -n
일부 버전에서 사용 가능한 옵션 ln
은 필요에 따라이를 대신하여 디렉토리에 대한 심볼릭 링크를 처리합니다.
ln -sfn /path/to/data/folder/month/date/hour/minute/file /path/to/recent/file
POSIXln
는 지정하지 않으므로 -n
일반적으로 신뢰할 수 없습니다. ln
의 동작 중 상당수 는 구현에 따라 정의되므로 사용중인 시스템의 세부 사항을 확인해야합니다. 당신이 사용하는 경우 GNU를ln
, 당신은 사용할 수 있습니다 -t
및 -T
(디렉토리의 존재의 행동은 완전히 예측 가능하게, 너무 옵션 즉, 대신에 같은 이름을 가진 기존 디렉토리 안에있는 링크를 만드는 실패).