확장 가능한 벡터 아이콘 테마 디렉토리가 있고 그 안에 ln 명령과 함께 사용할 수 있는 이름이 포함된 파일로 대체하려는 여러 개의 심볼릭 링크가 있습니다. 다음과 같은 줄이 포함된 파일을 만들었습니다.
scalable/actions/messagebox_warning.svg scalable/emblems/emblem-danger.svg
scalable/emblems/emblem-nowrite.svg scalable/emblems/emblem-unreadable.svg
scalable/distributor-logos/debian.svg scalable/emblems/Debian.svg
scalable/mimetypes/gnome-mime-text-plain.svg scalable/emblems/emblem-documents.svg
scalable/emblems/emblem-personal.svg scalable/emblems/emblem-readonly.svg
scalable/mimetypes/package-x-generic.svg scalable/emblems/emblem-package.svg
scalable/apps/download.svg scalable/emblems/emblem-downloads.svg
scalable/devices/network-wired.svg scalable/emblems/emblem-shared.svg
scalable/distributor-logos/ubuntu.svg scalable/emblems/emblem-ubuntu.svg
나는 다음 명령을 사용해 보았습니다.
xargs -L 1 ln -sf < src/symlinks
또한 다음을 시도해보세요:
xargs -L 1 -I{} ln -sf {} < src/symlinks
그러나 이는 자신에 대한 심볼릭 링크를 생성합니다. 파일 이름의 대상을 파일에서 가져오는 심볼릭 링크를 만드는 방법은 무엇입니까?
답변1
파일이 올바른 순서(대상, 링크 이름 순)이고 파일 이름에 특수 문자나 공백이 포함되어 있지 않다고 가정합니다.
sed 's/^/ln -sf /g' < src/symlinks | sh
심볼릭 링크 목록을 일련의 ln -sf
명령으로 변환하고 sh
.
답변2
경로에 공백이나 개행 문자가 없다고 가정하고 루프를 사용하는 while
솔루션 :
while IFS=' ' read -r t l; do ln -sf -- "$t" "$l"; done < src/symlinks