ln 사용법 이해

ln 사용법 이해

coreutils 매뉴얼에서ln

ln은 파일 간의 링크를 생성합니다. 기본적으로 -s 옵션을 사용하면 하드 링크가 생성되고 기호(또는 소프트) 링크가 생성됩니다. 소개:

ln [option]... [-T] target linkname
ln [option]... target
ln [option]... target... directory
ln [option]... -t directory target...

• 두 개의 파일 이름이 주어지면 ln은 두 번째 파일에서 첫 번째 파일로의 링크를 생성합니다.

• 대상이 주어지면 ln은 현재 디렉터리에 파일에 대한 링크를 생성합니다.

--target-directory(-t) 옵션이 지정되거나 마지막 파일이 디렉터리이고 --no-target-directory(-T) 옵션이 지정되지 않은 경우 ln은 Destination을 사용하여 각 대상에 대한 링크를 생성합니다. name은 지정된 디렉터리에 파일을 저장합니다.

굵은 부분은 무엇을 의미하나요?

특히 다음은 무엇을 의미하나요?

  • "마지막 파일이 디렉터리이면 실패합니다."
  • "대상의 이름을 사용하세요"?

감사해요.

답변1

ln /path/to/files/* /path/to/some/directory/, 또는 을 선택하면 ln -t /path/to/some/directory/ /path/to/files/*원본 파일과 동일한 이름을 가진 일치하는 각 파일에 대한 링크가 생성됩니다./path/to/files/*/path/to/some/directory/

답변2

제 생각에는 http://linux.die.net/man/1/ln

더 명확하게 만드십시오. 다음과 같은 테이블이 있습니다.

  1. ln [옵션]... [-T] TARGET LINK_NAME(첫 번째 형식)
  2. ln [옵션]...target (두 번째 형식)
  3. ln [옵션]...대상...디렉토리(세 번째 형식)
  4. ln [옵션]... -t 디렉토리 대상... (네 번째 형식)

그리고

-t, --target-directory=DIRECTORY
specify the DIRECTORY in which to create the links
-T, --no-target-directory
treat LINK_NAME as a normal file

-T이는 두 개의 인수를 전달하는 경우 3이 아닌 형식 1(두 번째 인수는 link_name)을 의미한다는 것을 의미합니다. 즉, 실수로 디렉터리를 두 번째 인수로 전달하지 않도록 하려는 것입니다.

예:

mkdir output
ln -s /etc/passwd output #OK passwd link goes into output/passwd

비교됨

mkdir output
ln -sT /etc/passwd output #FAIL; output is already taken and is a directory

링크 -t는 반대입니다 -T. 그 뒤에 오는 것은 무엇이든 링크가 배치될 수 있는 디렉토리가 될 것으로 예상하며 이를 통해 다음을 수행할 수 있습니다.

list_link_targets | xargs -d '\n' ln -s -t directory

이것은 세 번째 형태의 경우 더 어렵습니다.

관련 정보