FAT32 메모리 카드를 사용하여 파일 시스템과 심볼릭 링크를 Ubuntu 14.04에서 16.04로 옮겼는데, 이로 인해 BitTorrentSync 사용이 중단된 것 같습니다. 차이점은 이러한 링크가 XSym 덕분에 내 OSX 설치의 남은 부분이라는 것입니다. 내가 만든 것은 ls -la $HOME | grep Math
심볼릭 링크였습니다.
-rw-r--r-- 1 masi masi 1067 May 17 21:28 Math
텍스트 편집기에는 무엇이 있나요?
XSym
0078
48055bd2d9c13568c969e1eb8d6a22ac
/Users/masi/Math/
반대쪽을 가리켜야 합니다 /Users/masi/LOREM/Math/
. 링크가 여전히 작동하지 않기 때문에 PATH를 수동으로 수정하는 것만으로는 작동하지 않습니다.
질의 명령다음에도 적용될 수 있습니다.
find /Users/masi/Math/ /
-lname '/Users/masi/LOREM/Math/*' \
-exec sh -c 'ln -snf "/mnt$(readlink "$0")" "$0"' {} \;
소스와 대상을 올바른 순서로 가져오고 있는지 잘 모르겠습니다.
시스템: 우분투 14.04, 우분투 16.04
답변1
나는 두 가지 가능한 해결책을 생각했습니다.
1. 모든 디렉토리를 반복 LOREM
하고 심볼릭 링크합니다.$HOME
cd "$HOME/LOREM"
for item in *
do
test -d "$item" || continue
mv -f "$HOME/$item" "$HOME/$item.DELETE_ME_LATER" 2>/dev/null
ln -s "$HOME/LOREM/$item" "$HOME/$item"
done
# Once you are happy that only the correct files have been replaced
# rm "$HOME"/*.DELETE_ME_LATER
rm
예를 들어 스크립트 앞에 추가하여 변경하기 전에 스크립트의 효과를 확인할 수 있습니다.ln
echo
echo rm -f "Users/masi/$item"
2. 기존 파일 세트를 처리하고 이를 올바른 심볼릭 링크로 변환합니다.
심볼릭 링크가 되어야 하는 파일을 식별하는 구체적인 내용이 없기 때문에 이를 위해서는 약간의 경험적 방법(추측)이 필요합니다.
이와 같은 것이 효과가 있을 수 있습니다.
for file in *
do
# Skip files that we have already processed
[[ $file =~ DELETE_ME_LATER ]] && continue
# Look for a path-like string in the file
path=$(grep "^$HOME/" "$file")
if test -d "$path"
then
# It is a directory
mv -f "$file" "$file.DELETE_ME_LATER"
ln -s "$HOME/LOREM/$file" "$file"
fi
done
# Once you are happy that only the correct files have been replaced
# rm *.DELETE_ME_LATER
마찬가지로 mv
및 문 앞에 ln
접두사를 붙여 echo
변경 사항을 적용하지 않고도 효과를 확인할 수 있습니다.
답변2
이것은 답변이 아니며, 댓글을 달기에는 너무 큰 정보를 증폭시킬 뿐입니다.
파일 XSym
은 (일종의) 설명됩니다여기.
원래 포스터에서는 원래 질문에서 이 내용을 언급하지 않았지만 Léo의 파일 시스템은 Mac에서 액세스할 수 있는 Samba를 실행하는 NAS(또는 다른 홈 네트워크 서버)에 있는 것으로 추측됩니다. 따라서 기호 링크는 실제로 기호 링크가 아닙니다.
이러한 가짜 심볼릭 링크 파일을 작성하는 것이 macOS 버전인지 ln
Samba 자체인지 100% 확신할 수는 없지만, 위에 링크된 문서에서는 이에 대해 명확하지 않습니다. 요약하면 SMB/CIFS 파일 시스템에서 Unix 클라이언트 심볼릭 링크를 지원하는 방법입니다.