Estoy usando esencialmente esta secuencia de comandos para mantener mi dotfiles bajo el control de versiones. Recientemente he añadido un snippets
carpeta dentro de mi emacs.d
directorio y listado como una de las cosas que debe ser un enlace simbólico a partir de mi directorio home. Sin embargo, cuando ejecuto el script crea un enlace simbólico a snippets
dentro snippets
sí.
Aquí está el correspondiente bit de la secuencia de comandos:
#!/bin/bash
############################
# .make.sh
# This script creates symlinks from the home directory to any desired dotfiles in ~/dotfiles
############################
########## Variables
dir=~/.dotfiles # dotfiles directory
olddir=~/.dotfiles_old # old dotfiles backup directory
files="bash_profile gitignore gitconfig zshrc jrnl_config emacs.d/init.el emacs.d/custom.el emacs.d/snippets scripts/makeadate.js config/karabiner/assets/complex_modifications config/karabiner/karabiner.json" # list of files/folders to symlink in homedir
##########
# create dotfiles_old in homedir
echo -n "Creating $olddir for backup of any existing dotfiles in ~ ..."
mkdir -p $olddir
echo "done"
# change to the dotfiles directory
echo -n "Changing to the $dir directory ..."
cd $dir
echo "done"
# move any existing dotfiles in homedir to dotfiles_old directory, then create symlinks from the homedir to any files in the ~/dotfiles directory specified in $files
for file in $files; do
echo "Moving any existing dotfiles from ~ to $olddir"
mv ~/.$file $olddir
echo "Creating symlink to $file in home directory."
ln -s $dir/$file ~/.$file
done
Así que, antes de ejecutar el script, ~/.dotfiles/emacs.d/snippets
contiene sólo dos subdirectorios, latex-mode
y mhtml-mode
. Después de ejecutar la secuencia de comandos, que contiene un nuevo enlace simbólico a ~/.dotfiles/emacs.d/snippets
. Sospecho que el problema tiene algo que ver con el hecho de que uno de los valores que la variable $file
está tomando es un directorio. Pero no sé cuál es exactamente el problema.