ドットファイルをホーム ディレクトリにシンボリック リンクするように thinkbotの bash スクリプトを変更しようとしていますが、ファイルをサブディレクトリに保存したいと考えています。
思考ボット スクリプトのオリジナルは次のとおりです。
#!/bin/sh
for name in *; do
target="$HOME/.$name"
if [ -e "$target" ]; then
if [ ! -L "$target" ]; then
echo "WARNING: $target exists but is not a symlink."
fi
else
echo "Creating $target"
ln -s "$PWD/$name" "$target"
fi
done
私のドットファイルは、というサブディレクトリにありfiles
ます。for ループを次のように変更してみました。
for name in files/*
、for name in ./files/*
、for name in 'files/*'
などですが、どれもうまくいきませんでした。
find
少し調査した結果、次のように使用してサブディレクトリ内のファイルをループできることがわかりました。
find ./files -type f -exec "do stuff here" \;
そして、 で各ファイルへの参照を取得できること'{}'
はわかりましたが、ファイルを操作してシンボリックリンクを作成する方法がわかりません。
私は試した:
find ./files -type f -exec "ln -s '{}' $HOME/'{}'" \;
'{}'
ファイルの名前だけでなく、親ディレクトリからのファイルの相対パスであるため、それは機能しません。
これを行う正しい方法は何ですか?
参考までに、これは私のディレクトリ構造がどのように見えるかです: