dotfiles
私のリポジトリから私のホームフォルダへのファイルリンクを生成するシェルスクリプトを作成しようとしています。
に移動するときは、可能であればハードリンクを使用したいと思いますHOME
。
ただし、他のファイルシステムに複製するにはdotfiles
シンボリックリンクを使用する必要があります。
それでは、可能であればどのようにファイルへのハードリンクを作成できますか?または、シェルスクリプトでシンボリックリンクを使用できますか?
答え1
ln source target 2>/dev/null || ln -s source target 2>/dev/null || exit 1
または少し「相互作用的」(より対話的)、
if ! ln source target 2>/dev/null; then
echo 'failed to create hard link, trying symbolic link instead' >&2
if ! ln -s source target 2>/dev/null; then
echo 'that failed too, bailing out' >&2
exit 1
fi
fi
/dev/null
表示されたエラーメッセージln
(存在する場合)を表示するには、リダイレクトを削除してください。