7

独自の自動ドットファイルフォルダを作成したい。(ドットファイルでバージョン管理を使用するためにgitを使用しますが、それは質問には関係ありません)

私が単に望んでいるのは、すべてのファイルとフォルダーをホームフォルダーにシンボリックにリンクすることです。~/dotfilesbashがまったく得意ではないので、これはできません。これを手伝ってください。

可能であれば、以下の機能もいただければ幸いです。

  • フォルダは浅くリンクされているだけです
  • 私のファイルは、ファイル名に実際のドットがなくてもdotfilesフォルダーにある可能性があります(~/dotfiles/vimrcではなくのように~/dotfiles/.vimrc
  • 同じフォルダに保存されている私の.gitファイルのようないくつかのファイルを無視できるはずです

もちろん、これを提供するサービスをすでに知っている場合、それは少なくともいくつかのdo-myselfコマンドを提供するのと同じくらい良いです。特にbashか、すべてのUNIXマシンに存在する可能性が最も高いものにしたいことに注意してください(したがって、g ++を使用したコマンドで問題ないと思います)。

4

6 に答える 6

8

これを試してみてください:

ln -s ~/dotfiles/* ~

ループは必要ありません。もちろん、find再帰的なものが必要な場合に使用できます。

編集:

宛先ファイルを非表示にするには:

for f in ~/dotfiles/*
do
    ln -s "$f" "$HOME/.${f##*/}"
done
于 2011-03-09T01:31:18.017 に答える
0

質問が正しいかどうかはわかりませんが、dir-contentのシンボリックリンクを探している場合は、

for f in `ls -1 .dotfiles`
do
   ln -s .dotfiles/$f ~/$f
done

多分それはすでにトリックをします

于 2011-03-08T20:40:30.360 に答える
0

ドットファイルを管理するために、私はザックホルマンのアプローチが本当に好きです。私はここで見つけることができる私のドットファイルで同じものを作りました:)

https://github.com/rhacker/dotFiles

于 2012-11-25T07:20:16.543 に答える
0

ドットファイルマネージャーをお探しの場合は、DFM(ドットファイルマネージャー)を確認することをお勧めします。DFMは、非常にクリーンな方法で問題に対処します。

于 2015-04-13T15:59:00.180 に答える
0

Atlassianには、シンボリックリンクの代わりにgitワークツリーを使用するためのチュートリアルがあります。アプローチは以下を使用します:

  1. $HOME/.cfgサイドフォルダー(またはなど)の裸のgitリポジトリ$HOME/dotfiles、および
  2. 構成ファイルを管理するgitコマンドを実行するためのconfigbashエイリアス。

たとえば、実行config statusして、変更されたファイルを確認したりconfig checkout、リポジトリ内のファイルを取得したり、リポジトリconfig commitを更新したりできます。gitとだけが必要bashです。

于 2017-10-16T12:25:41.313 に答える
0

また、最小限の手順で新しいマシンをセットアップする方法を探していました。しばらく時間を費やした後、ほとんどすべての開発者がgitを使用してこれらのファイルとシンボリックリンクを保存および共有して同期していることがわかりました。

シンボリックリンクは機能しますが、ローカルファイルをgitリポジトリに同期するための最良の方法ではありません。これには、Atlassianの人々によって書かれたはるかに優れた解決策があります–https ://www.atlassian.com/git/tutorials/dotfiles

したがって、gitbareリポジトリは、ファイルをリモートコピーと同期するための最良かつ最も洗練された方法であり、インストールとセットアップを自動化するためのbashスクリプトを作成します。

ドットファイルの管理

これらのドットファイルを管理する秘訣は、裸のgitリポジトリを作成することです。ゼロから始めて、以前にドットファイルを追跡したことがない場合は、$HOMEディレクトリにベアリポジトリを作成します。

git init --bare $HOME/.dotfiles

使いやすくするために、これをdotfilesにエイリアスします。これは、通常のgitの代わりにdotfilesリポジトリと対話するために使用します。

alias dotfiles="/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME"

これで、dotfilesコマンドを使用してドットファイルを追跡できるようになりました。いくつかの例を次に示します。

# to check the version history 
dotfiles log

# to check the status of the tracked and untracked files 
dotfiles status

# to add a file for tracking
dotfiles commit .vimrc -m ".vimrc added"

# push new files or changes to the github
dotfiles push origin main

ドットファイルのユースケースと利点

この管理と共有の方法にはさまざまな利点があり、その一部を以下に示します。

簡単なセットアップ

新しいマシンのセットアップは時間のかかる作業になる可能性がありますが、この方法を使用すると、パーソナライズされた構成を1分以内に使用できます。リポジトリのクローンを作成し、.bashrcまたは.zshrcファイルを入手する必要があります。

git clone --bare https://github.com/<username>/dotfiles.git $HOME/.dotfiles && source ~/.zshrc

バージョン管理されたドットファイル

新しい構成を試し、変更履歴を保持するのに最適です(基本的にgitを使用するすべての長所)

# to check the version history 
dotfiles log

複数のデバイスで共有

ブランチを使用して最小限の変更で複数のデバイスの同じ構成を共有し、新しいマシンのブランチを作成します。例:-

# Create configurations specific to your aws machines
dotfiles checkout -b aws

ドットファイルのプロファイル

ブランチを使用して環境に基づいて構成を作成し、ブランチを作成して、作業環境に応じて構成します。

# Manage multiple profiles - check out to the work profile 
dotfiles checkout work

また、この方法を使用してドットファイルを同期および保存し、ドットファイルリポジトリを確認し、複数のデバイスの管理について書いたツールで読み取ることができます。

于 2021-01-21T12:14:52.050 に答える