폴더의 파일을 반복하고 심볼릭 링크를 만듭니다.
현재 스크립트는 폴더의 파일을 반복하고 다른 폴더에 대한 심볼릭 링크를 생성하려고 합니다.
#!/bin/bash
############################
# .make.sh
# This script creates symlinks from the home directory to any desired dotfiles in ~/dotfiles
############################
########## Variables
dir=~/dotfiles # dotfiles directory
config_files=$dir/*
# move any existing home files in homedir to dotfiles_old directory, then create symlinks
for config_file in $config_files; do
ln -s $dir/$config_file ~/.$config_file
done
이제 ~/dotfiles에 여러 파일이 있는 경우, 예를 들어 파일이 포함된 폴더가 있습니다. 폴더가 생성되고 심볼릭 링크되었는지 어떻게 확인합니까?
예를 들어, 내 ~/dotfiles
I에는 다음이 있습니다.
~/dotfiles/.config/fish/config.fish
그리고~/dotfiles/.config/fish/conf.d/config.fish
나는 심볼릭 링크로 끝나야한다
~/.config/fish/config.fish
그리고~/.config/fish/conf.d/config.fish
어떻게 해야 하나요?
답변1
어쩌면 cp
대신 사용할 수도 있습니다 .ln
man 1 cp
:
-R
재귀적으로 디렉터리 복사
-s
복사하는 대신 심볼릭 링크 만들기
노트:
-R
POSIX에서는 이를 요구하지만-s
그렇지 않습니다(지원할cp
수도 있고 지원하지 않을 수도 있음).- 이런 식으로 파일을 "복사"해도
-R
문제가 되지 않습니다 . cp -Rs …
(디렉토리에 대한 심볼릭 링크가 아닌) 심볼릭 링크를 사용하여 디렉토리 구조를 파일에 복사합니다.- 내 쿠분투에서는 상대 심볼릭 링크를 만드는 것이
cp
현재 디렉터리로 제한되므로-R
. - 연구
-p
옵션cp
. 당신이 그것을 사용하고 싶어한다고 가정합니다.
스크립트에 대한 몇 가지 우려사항:
- 이 댓글변수를 인용하는 것이 합리적입니다.
*
이름이 점( )으로 시작.
하는 파일이나 디렉터리는 반환되지 않습니다.