나는 ln
수년 동안 심볼릭 링크를 작성해 왔지만 여전히 인수 순서가 잘못되었습니다.
이로 인해 일반적으로 다음과 같은 글을 남깁니다.
ln -s a b
그런 다음 출력을 보고 스스로에게 상기시켜 보세요.
나는 항상 a -> b
내가 읽은 내용이 이런 것이라고 상상했지만 실제로는 그 반대였습니다 b -> a
. 이것은 직관에 어긋나는 느낌이 들기 때문에 항상 나 자신을 추측하고 있습니다.
올바른 순서를 기억하는 데 도움이 되는 팁이 있는 사람이 있나요?
답변1
내 생각은 ln
'좋아요 cp
. '출처'가 먼저 나와야 한다'였어요.
답변2
나는 다음을 사용합니다: ln
단일 매개변수 형식이 있습니다(두 번째 형식은맨페이지), 이는 대상만 취하고( ln
대상을 모르고 작업하는 방법 때문에) ln
현재 디렉토리에 링크를 생성합니다. 두 개의 인수 형식은 단일 인수 형식을 보완하므로 대상은 항상 첫 번째 인수입니다.
답변3
대부분의 Unice는 ln
명령을 다음과 같이 기록합니다.
ln source target
(여기서는 옵션 등을 생략하고 있습니다)
예:
-
ln [-fs] [-L|-P] source_file target_file
-
ln [-fhLnPs] source [target]
-
ln [-L | -P | -s [-F]] [-f | -iw] [-hnv] source_file [target_file]
애플 시스템
ln [-Ffhinsv] source_file [target_file]
-
/usr/bin/ln [-fns] source_file [target]
-
ln [ -f | -n ] [ -s ] SourceFile [ TargetFile ]
GNU ln
매뉴얼에는 이상하다고 나와 있습니다.source
표적그리고target
링크 이름.
-
ln [option]… [-T] target linkname
GNU의 단어 선택을 무시하고 유틸리티는 ln
다음 과 mv
같은 의미를 따릅니다.cp
이것표적에서 생성됩니다원천.
그래서,
ln -s a b
b
에 대한 심볼릭 링크가 생성됩니다 a
. 즉, 소스로 사용되는 심볼릭 링크를 생성하는 b
작업의 대상입니다 .a
제작시 주의하세요상징적인link, source는 단순히 심볼릭 링크가 가리키는 대상을 나타내는 문자열입니다. 일반적으로 유용한 정보를 가리키는지 확인하는 검사는 없습니다.
$ ln -s "hello world" README.txt
$ ls -l
total 0
lrwxr-xr-x 1 kk wheel 11 Sep 15 11:39 README.txt -> hello world
"소스" 뒤에 "대상"이 오는 대신 "대상"과 "링크 이름"을 사용하는 GNU의 선택에 대한 개인적인 생각:
두 번째 매개변수(생성되는 항목)는 "링크 이름"이어야 하고 첫 번째 매개변수(링크 대상)는 "대상"이어야 한다는 것이 분명해 보입니다. 그러나 다음과 같은 경우에만사용링크.
때를만들다링크, 즉 수행 중인 작업 ln
과 두 번째 매개변수, 즉 생성된 콘텐츠는 ln
첫 번째 매개변수 "source"를 사용하여 생성된 작업의 "대상"입니다.
이는 다른 기본 도구에 대한 매개변수의 유사한 소스->대상 순서와 함께 GNU가 아닌 문서를 ln
더욱 자연스럽게 보이게 만듭니다.
답변4
누군가에게 도움이 된다면: 저는 이것을 "ln"이라고 생각하는 데 익숙합니다.무엇 어디"를 사용하면 첫 번째 인수("무엇")가 기존 파일이고 두 번째 인수("어디")가 파일을 넣을(링크) 위치라는 점을 기억하는 데 도움이 됩니다. 대부분의 다른 답변의 추론과는 달리, 이 것 이상은 아닙니다. 기억을 돕기 위해 마음속으로 암송할 수 있는 간결한 문구입니다. 모든 사람에게 효과가 있는 것은 아니지만 일부에게는 도움이 될 것으로 생각됩니다.
다른 표준 파일 조작 명령이 동일한 규칙을 사용하므로 cp
및 에서 동일한 작업을 수행 할 수 있습니다 mv
.