폴더의 파일을 심볼릭 링크하는 방법

폴더의 파일을 심볼릭 링크하는 방법

폴더의 파일을 반복하고 심볼릭 링크를 만듭니다.

현재 스크립트는 폴더의 파일을 반복하고 다른 폴더에 대한 심볼릭 링크를 생성하려고 합니다.

#!/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에 여러 파일이 있는 경우, 예를 들어 파일이 포함된 폴더가 있습니다. 폴더가 생성되고 심볼릭 링크되었는지 어떻게 확인합니까?

예를 들어, 내 ~/dotfilesI에는 다음이 있습니다.

~/dotfiles/.config/fish/config.fish그리고~/dotfiles/.config/fish/conf.d/config.fish

나는 심볼릭 링크로 끝나야한다

~/.config/fish/config.fish그리고~/.config/fish/conf.d/config.fish

어떻게 해야 하나요?

답변1

어쩌면 cp대신 사용할 수도 있습니다 .lnman 1 cp:

-R
재귀적으로 디렉터리 복사

-s
복사하는 대신 심볼릭 링크 만들기

노트:

  • -RPOSIX에서는 이를 요구하지만 -s그렇지 않습니다(지원할 cp수도 있고 지원하지 않을 수도 있음).
  • 이런 식으로 파일을 "복사"해도 -R문제가 되지 않습니다 .
  • cp -Rs …(디렉토리에 대한 심볼릭 링크가 아닌) 심볼릭 링크를 사용하여 디렉토리 구조를 파일에 복사합니다.
  • 내 쿠분투에서는 상대 심볼릭 링크를 만드는 것이 cp현재 디렉터리로 제한되므로 -R.
  • 연구 -p옵션 cp. 당신이 그것을 사용하고 싶어한다고 가정합니다.

스크립트에 대한 몇 가지 우려사항:

  • 이 댓글변수를 인용하는 것이 합리적입니다.
  • *이름이 점( )으로 시작 .하는 파일이나 디렉터리는 반환되지 않습니다.

관련 정보