태그 보관물: symbolic-link

symbolic-link

디렉토리의 모든 파일 (파일 클래스)에 대한 심볼릭 링크를 만드는 방법은 무엇입니까? 를 만들고 싶습니다 .bar.

특정 디렉토리의 ln -s모든 파일 (또는 파일로 끝나는 파일 클래스)에 대한 심볼릭 링크 ( ) 를 만들고 싶습니다 .bar. 내가 cwd에 있고 유형 ls ../source/*.bar이 나에게 있다고 말해

foo.bar
baz.bar

ln -s마지막으로 해결 되는 매개 변수 목록을 전달하는 방법

ln -s ../source/foo.bar
ln -s ../source/baz.bar

물론 나는 bash 스크립트를 작성할 수 있다는 것을 알고 있지만 xargs적어도 나에게는 일반적인 작업 인 것처럼 보이기 때문에 더 간단한 것이 있어야합니다 .



답변

ln 여러 인수를 취하지 만 그 경우 대상 디렉토리를 지정하는 것을 잊지 마십시오.

따라서 귀하의 예 .에는 대상 디렉토리가 있으므로 쉽게해야합니다.

ln -s ../source/*.bar .

부터 man ln; 위의 명령은 세 번째 형식을 사용합니다.

ln [OPTION]... [-T] TARGET LINK_NAME   (1st form)
ln [OPTION]... TARGET                  (2nd form)
ln [OPTION]... TARGET... DIRECTORY     (3rd form)
ln [OPTION]... -t DIRECTORY TARGET...  (4th form)
  • 첫 번째 양식에서 이름이 LINK_NAME 인 TARGET에 대한 링크를 작성하십시오.
  • 두 번째 양식에서 현재 디렉토리에 TARGET에 대한 링크를 작성하십시오.
  • 세 번째 및 네 번째 양식에서 DIRECTORY의 각 대상에 대한 링크를 작성하십시오.

답변

용도 find

certainDir="/path/to/dir"
find -name "*.bar" -exec ln -s {} "$certainDir" \;

또한 심볼릭 링크와 함께 전체 경로 (가능한 경우) 를 사용해야 합니다.


답변

globstar (bash / zsh set by shopt -s globstar) 를 사용하여 재귀 적으로 시도 할 수 있습니다 .

ls -vs ../**/*.bar .

참고 : -v자세한 내용을 추가 했습니다.

또는 find유틸리티를 사용하여 목록이 너무 긴 경우 :

find .. -name \*.bar -exec ln -vs "{}" dest/ ';'

에 링크가 만들어 dest/지거나 .현재 폴더로 변경됩니다 .


답변

cp-s옵션 소프트 링크 (또는 생성 할 수 있습니다 -l하드 링크).

현재 디렉토리에서 다음과 같이 사용할 수 있습니다.

$ cp -s ../path/with/scripts/* .

귀하의 경우 다음과 같습니다.

$ cp -s ../source/*.bar .


답변