XDG বেস ডিরেক্টরি সুনির্দিষ্টকরণ ডিরেক্টরি এক একটি সেট ডেটা সঞ্চয় ব্যবহারকারীকে ফোল্ডারে তথাকথিত ডট ফাইল / ডিরেক্টরির মধ্যে যেতাম করতে ব্যবহৃত হতে পারে প্রদান। এই পোস্টটি লক্ষ্য রাখে যে ব্যবহারকারীরা এই ডিরেক্টরিগুলি যতটা সম্ভব ব্যবহার করতে চান।
XDG বেস ডিরেক্টরি সুনির্দিষ্টকরণ ডিরেক্টরি এক একটি সেট ডেটা সঞ্চয় ব্যবহারকারীকে ফোল্ডারে তথাকথিত ডট ফাইল / ডিরেক্টরির মধ্যে যেতাম করতে ব্যবহৃত হতে পারে প্রদান। এই পোস্টটি লক্ষ্য রাখে যে ব্যবহারকারীরা এই ডিরেক্টরিগুলি যতটা সম্ভব ব্যবহার করতে চান।
উত্তর:
প্রকৃতপক্ষে, প্রশ্নের বর্তমান সংক্ষিপ্ত উত্তরটি আপনি পারবেন না , কারণ কিছু অ্যাপ্লিকেশন সেই পথটিকে হার্ডকোড করেছে। তবুও, অনেকগুলি অ্যাপ্লিকেশন যা XDG ডিরেক্টরিগুলিকে বিশেষভাবে সমর্থন করে না তারা পরিবেশের ভেরিয়েবলের মাধ্যমে অন্যান্য ডিরেক্টরি সেট করতে সক্ষম করে। কিছু সময় আপনাকে সিস্টেমের প্রশস্ত কনফিগারেশনটি পরিবর্তন করতে সক্ষম হতে হবে, উদাহরণস্বরূপ শেল সহ, তবে বেশিরভাগ সময়, আপনার অনিবদ্ধ ব্যবহারকারী হিসাবে পদক্ষেপটি সম্পাদন করতে সক্ষম হওয়া উচিত।
# Setting bash to use $XDG_CONFIG_HOME/bash, defaults to ~/.config/bash
confdir=${XDG_CONFIG_HOME:-$HOME/.config}/bash
### Moving existing files
mkdir -p -- "$confdir"
for file in "$HOME"/.bash*; do
dest=$confdir/$(basename "${file:1}")
mv -i -- "$file" "$dest" # don't overwrite without permission
done
### Sourcing and setting variables
sudo sh -c 'cat >>/etc/profile.d/bash_in_xdg_config_home.sh <<CONF
# Make bash follow the XDG_CONFIG_HOME convention
_confdir=\${XDG_CONFIG_HOME:-\$HOME/.config}/bash
if [ -d "$_confdir" ] && [ "\$0" = "bash" ]
then
. "\$_confdir"/bash_profile
. "\$_confdir"/bashrc
HISTFILE=\$_confdir/bash_history
fi
unset _confdir
CONF
'
sudo sh -c 'cat >>/etc/bash.bash_logout <<CONF
if [ -s "\${XDG_CONFIG_HOME:-\$HOME/.config}/bash/bash_logout" ]
then
. "\${XDG_CONFIG_HOME:-\$HOME/.config}/bash/bash_logout"
fi
CONF
'
# Setting zsh
## System wide configuration (using xdg directories)
sudo sh -c 'cat >>/etc/zshenv <<CONF
if [[ -d "\${XDG_CONFIG_HOME:-\$HOME/.config}"/zsh ]]
then
export ZDOTDIR=\${XDG_CONFIG_HOME:-\$HOME/.config}/zsh
fi
CONF
'
আপনি যদি বেশ কয়েকটি শেল ব্যবহার করেন, উদাহরণস্বরূপ ইন্টারেক্টিভ শেলের জন্য zsh, তবে স্ক্রিপ্টিংয়ের জন্য অন্য একটি, আপনি $XDG_CONFIG_HOME/profile
ফাইল করতে চাইতে পারেন , যা আপনি প্রাসঙ্গিক শেল ইনিশিয়ালাইজেশন স্ক্রিপ্টে উত্স করবেন।
# bazaar
export BZRPATH=$XDG_CONFIG_HOME/bazaar
export BZR_PLUGIN_PATH=$XDG_DATA_HOME/bazaar
export BZR_HOME=$XDG_CACHE_HOME/bazaar
# gnupg
export GNUPGHOME=${XDG_CONFIG_HOME}/gnupg
# ICEauthority
export ICEAUTHORITY=${XDG_CACHE_HOME}/ICEauthority
# less
export LESSHISTFILE="${XDG_CONFIG_HOME}/less/history"
export LESSKEY="${XDG_CONFIG_HOME}/less/keys"
# mplayer
export MPLAYER_HOME=$XDG_CONFIG_HOME/mplayer
# subversion
export SUBVERSION_HOME=$XDG_CONFIG_HOME/subversion
# vim
export VIMINIT='let $MYVIMRC="$XDG_CONFIG_HOME/vim/vimrc" | source $MYVIMRC'
export VIMDOTDIR="$XDG_CONFIG_HOME/vim"
এসএসএইচ ক্লায়েন্ট কনফিগারেশন ফাইল পরিবর্তন করার একটি উপায় সরবরাহ করে, তবে - যতদূর আমি খুঁজে পেয়েছি - কেবল কমান্ড লাইনের মাধ্যমে। তাই কোনও ডিফল্ট এমলেসমেন্টের সাথে ক্লায়েন্টদের সর্বদা অনুরোধ করার একটি সমাধান হতে পারে:
if [ -s "${XDG_CONFIG_HOME}/ssh/config" ]
then
SSH_CONFIG="-F ${XDG_CONFIG_HOME}/ssh/config"
fi
if [ -s "${XDG_CONFIG_HOME}/ssh/id_dsa" ]
then
SSH_ID="-i ${XDG_CONFIG_HOME}/ssh/id_dsa"
fi
alias ssh="ssh $SSH_CONFIG $SSH_ID "
alias ssh-copy-id="ssh-copy-id $SSH_ID"
এবং আপনার ${XDG_CONFIG_HOME}/ssh/config
মধ্যে এমন কিছু থাকা উচিত:
Host *
IdentityFile /home/user/.config/ssh/id_dsa
যদিও GNUPGHOME
ডকুমেন্টেড ভেরিয়েবল, ফেডোরা 21 এর অধীনে ~/.gnupg
আপনি নতুন সেশনটি চালু করার সময় আপনি একটি নতুন ডিরেক্টরি তৈরির কাজ শেষ করবেন ।
যদিও ICEauthority
ডকুমেন্টেড ভেরিয়েবল, ফেডোরা 21 এর অধীনে আপনি যখন নতুন সেশন শুরু করবেন তখন নতুন কুকি তৈরির কাজ শেষ করবেন।
উভয় ডিরেক্টরি আছে হিসাবে ~/.swt
সম্ভবত ডটফাইল বিষয়বস্তু সরাসরি মধ্যে সংরক্ষণ করা উচিত । এটি সম্ভব হলে কীভাবে এটি করতে পারে তার কোনও নথিপত্র পাওয়া যায় নি।${XDG_DATA_HOME}
lib
মজিলা পণ্যগুলি উপযুক্ত পরিবেশের পরিবর্তনশীলকে সমর্থন করে না, দেখুন মজিলা পণ্যগুলি একটি কাস্টম ব্যবহারকারী কনফিগারেশন ডিরেক্টরি ব্যবহার করার অনুমতি দেয় না এবং ফ্রিডেস্কটপ.অর্গ.এক্সডিজি বেস ডিরেক্টরি নির্দিষ্টকরণের জন্য সমর্থন করে ।
$XDG_CONFIG_HOME
)export XAUTHORITY="$XDG_CACHE_HOME/Xauthority"
2) আপনার ভেরিয়েবল উদ্ধৃত করুন! (উদাহরণের জন্য 1 দেখুন ()) 3) আমার জন্য bash
, আমি প্রয়োজন হবে:export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:="$HOME/.config"}
আমি আর্চ লিনাক্স উইকি পৃষ্ঠার এক্সডিজি বেস ডিরেক্টরি সহায়তার সাথে পরামর্শ করার পরামর্শ দিচ্ছি যা ধারাবাহিকভাবে আপডেট হয়।
এলেবেলে
আমি শুধু আমার সরানো .gitconfig
করার XDG_CONFIG_HOME
উপর ওএসএক্স। গিট-কনফিগার ডকুমেন্টেশন প্রতি (খ্যাতির কারণে লিঙ্ক বাদ দেওয়া হয়েছে)।
Second user-specific configuration file. If $XDG_CONFIG_HOME is not set or
empty, $HOME/.config/git/config will be used. Any single-valued variable
set in this file will be overwritten by whatever is in ~/.gitconfig. It is
a good idea not to create this file if you sometimes use older versions of
Git, as support for this file was added fairly recently.
আমি মাভেরিক্সে সিস্টেম-ব্যাপী PATH এনভায়রনমেন্ট ভেরিয়েবল নির্ধারণের নির্দেশাবলী ব্যবহার করে পরিবেশ পরিবর্তনশীল সেট করেছি । মনে রাখবেন যে আপনাকে XDG_CONFIG_HOME/git/config
নিজে ফাইল তৈরি করতে হবে এবং যদি ~/.gitconfig
উপস্থিত থাকে তবে এটি অগ্রাধিকার গ্রহণ করবে।
VIM
আমি টম ভিনসেন্টের 2011 এর নিবন্ধটি Vim শ্রদ্ধেয় XDG ব্যবহার করেছি এবং এটি কার্যকর বলে মনে হচ্ছে। উপরের উত্তর সম্পর্কে আমি নিশ্চিত নই; VIMDOTDIR
একটি জিনিস বলে মনে হচ্ছে না।
জ্যাশ ব্যাশের চেয়ে কিছুটা ভাল কাজ করে যা আপনাকে $ZDOTDIR
ভেরিয়েবলটি ব্যবহার করে আপনার বাড়ি ডি-ক্লাটার করতে দেয় । Zsh এর পথ থেকে সরিয়ে নিতে আপনার ~/.zshenv
ফাইলটিতে নিম্নলিখিতটি যুক্ত করতে হবে:
# ~/.zshenv contents
# this is the bare bones setup to move everything to XDG dir
ZDOTDIR=$HOME/.config/zsh
আপনার যদি রাইট প্রাইভেলিজ থাকে তবে আপনি এটির পরিবর্তে এটি যুক্ত করতে পারেন /etc/zsh/zshenv
এবং আপনার $ হোমটিতে কোনও zsh ডটফিলের প্রয়োজনীয়তা এড়াতে পারেন। এখান থেকে, আপনার অন্যান্য zsh ডটফাইলগুলি সরানো যেতে পারে ~/.config/zsh
, এর মতো .zshrc
। আমিও আপনার zsh ইতিহাস যুক্ত করার প্রস্তাব দিই $XDG_DATA_HOME
অবস্থান: HISTFILE=$XDG_DATA_HOME/zsh/zsh_history
।
কিছু অ্যাপ্লিকেশন ডিফল্টরূপে XDG অবস্থানের সন্ধান করবে এবং আপনি এটি উপলব্ধি করতে পারেন না কারণ আপনার $ HOM ডিরেক্টরিতে আপনার এখনও একটি উত্তরাধিকার ডটফাইল রয়েছে। গিট ~/.gitconfig
এটির একটি ভাল উদাহরণ - আপনার যদি এটি থাকে তবে এটিকে সরানোর চেষ্টা করুন ~/.config/git/config
। আমার ব্যক্তিগত প্রিয়, ফিশ শেল , ডিফল্টরূপেও ~ / .config ব্যবহার করে।
এছাড়াও, আপনার অন্যান্য অ্যাপ্লিকেশনগুলিকে পুনরায়- হোম-আইএন ভেরিয়েবলের নিজস্ব সংস্করণের জন্য পরীক্ষা করুন। অনেকে এটিকে ভেরিয়েবলের মাধ্যমে এক্সডিজি সমর্থন করে:
export ATOM_HOME=$XDG_CONFIG_HOME/atom
export LPASS_HOME=$XDG_CONFIG_HOME/lpass
export _Z_DATA=$XDG_DATA_HOME/z/z.txt
তবে এখনও লজ্জার বেশ বিস্তৃত এক্সডিজি প্রাচীর রয়েছে। Tmux আপনার $ HOM- কে ডি- ক্লটারিং সমর্থন করার জন্য সক্রিয়ভাবে প্রতিকূল হয়েছে । পাইলট সঙ্গে একই । জুলিয়া । এবং তালিকাতে আরও অনেক কিছুই আছে. আর্ক এখানে এক্সডিজি সহায়তার একটি দুর্দান্ত চলমান তালিকা রাখে ।
সত্য, আমি এটি সমর্থন করার জন্য প্রতিরোধ বুঝতে পারি না। ব্যবহারকারীদের স্পষ্টরূপে একটি স্পষ্ট বার্তা প্রেরণ করা দরকার যে অ্যাপ্লিকেশনগুলি তাদের over হোমের উপর রাফশড চালাচ্ছে না। এখন আর ঠিক নেই। একটি আধুনিক সিস্টেম এমন শত শত অ্যাপ্লিকেশন ব্যবহার করে যা OME হোমকে দূষিত করে, 20 বছর আগের দশকের মতো নয়।