में कुछ निर्देशिकाओं जाओ जब मैं एक निर्देशिका जाना चाहता हूँ ऊपर मैंlinux
cd ..
का उपयोग लेकिन जब मैं 7 निर्देशिका ऊपर जाना चाहता हूँ वहाँ सिर्फ सात टाइप करने के अलावा यह अन्य करने के लिए किसी भी तरह से (है 7) समय cd ..
?
में कुछ निर्देशिकाओं जाओ जब मैं एक निर्देशिका जाना चाहता हूँ ऊपर मैंlinux
cd ..
का उपयोग लेकिन जब मैं 7 निर्देशिका ऊपर जाना चाहता हूँ वहाँ सिर्फ सात टाइप करने के अलावा यह अन्य करने के लिए किसी भी तरह से (है 7) समय cd ..
?
cd ../../../../../../../
इसके अलावा एक और उपयोगी नेविगेशन टिप के लिए करता है, तो उदाहरण मान लीजिए कि आप एक निर्देशिका से स्विच रखने की सुविधा देता है (इसे कहते ए) दूसरे के लिए (इसे बी कहते हैं) कि आपके मामले में 7 निर्देशिकाएं हैं।
तो अगर आप निर्देशिका एक में कर रहे हैं:।
A> cd ../../../../../../../
B> // Now you're in directory B and want to go back to A
B> cd -
कि निर्देशिका ए -
करने का अधिकार वापस चले जाएँगे पिछले निर्देशिका आप में थे फैलता
'सीडी -' कमांड दिलचस्प है। क्या इसके लिए कोई खिड़कियां बराबर है? – RBT
हालांकि यह "स्वीकृत" उत्तर है, लेकिन मुझे लगता है कि नीचे @ डेव का उत्तर अधिक मजबूत समाधान है। "../" की एक लंबी सूची दोनों कठिन और त्रुटि के लिए प्रवण है। यदि आपकी प्रोफ़ाइल उपनाम स्क्रिप्ट की अनुमति देती है, तो यह अधिक स्केलेबल है। बैश उपनाम संस्करण भी "सीडी -" के लिए समर्थन को बरकरार रखता है। – ZaydH
आप कुछ हैक्स क्या आप नेविगेशन सुधारने के लिए आवेदन कर सकते हैं के बारे में cool article है इस cd ../../../../../../../
की तरह कर सकते हैं।
एचएम, मुझे ऐसा नहीं लगता है।
लेकिन आप cd ../../../..
(और इतने पर) के बजाय 7 बार सीडी लिख सकते हैं ..
for i in {1..7}; do cd ..; done
आप pushd .
उपयोग कर सकते हैं इसे वापस जाने के लिए एक निर्देशिका और popd
याद रखने के लिए।
यदि कोई आदेश है तो मैं बहुत उपयोग करता हूं, मैं केवल उपनाम बनाउंगा।
आप टाइप कर सकते हैं
alias ..='cd ..'
alias ...='cd ../..'
तो फिर तुम सिर्फ ..
का उपयोग एक स्तर ऊपर और ...
जाना दो स्तरों तक जाने के लिए कर सकते हैं।
आमतौर पर, जब तुम वापस सीडी के साथ एक निर्देशिका जाना .., आप के बाद आगे की ओर एक निर्देशिका जा रहा अंत:
यहाँ एक मामूली सुधार मैंने पाया है। यह काम करने के लिए, आप उपनाम के बजाय कार्यों का उपयोग करने के लिए है, इसलिए बजाय:
alias ..=”cd ../”
alias ..2=”cd ../../”
आप का उपयोग कर सकते हैं:
..()
{
cd ../[email protected]
}
..2()
{
cd ../../[email protected]
}
बहरहाल, यह उपयोग करने के बाद, इसे जल्दी स्पष्ट हो जाता है कि आप याद कर रहे हैं इस समारोह के लिए कमांड पूरा करने, इसे जितना कम उपयोगी हो सकता है। इस प्रकार, मैं वापस चला गया और इस फ़ंक्शन के लिए अपने स्वयं के बैश पूर्ण करने के कार्यों को जोड़ा, जिसे आपके ~/.bashrc या किसी भी फ़ाइल (जैसे ~/.bash_completion) में चिपकाया जा सकता है जिसे आप अपने ~/.bashrc से बुला सकते हैं यदि आप टालना चाहते हैं अव्यवस्था। यहां पूरा कोड है:
_..()
{
local cur=../${COMP_WORDS[COMP_CWORD]}
COMPREPLY=($(compgen -d — $cur))
local i=${#COMPREPLY[*]}
while [ $((--i)) -ge 0 ]; do
COMPREPLY[$i]=$(echo ${COMPREPLY[$i]} | sed -r ‘s/(\.\.\/)*//’)
done
}
complete -F _.. -o nospace -S/..
_..2()
{
local cur=../../${COMP_WORDS[COMP_CWORD]}
COMPREPLY=($(compgen -d — $cur))
local i=${#COMPREPLY[*]}
while [ $((--i)) -ge 0 ]; do
COMPREPLY[$i]=$(echo ${COMPREPLY[$i]} | sed -r ‘s/(\.\.\/)*//’)
done
}
complete -F _..2 -o nospace -S/..2
उपनाम बनाएं (आप में ~ /।bashrc)
function cd_up() {
cd $(printf "%0.0s../" $(seq 1 $1));
}
alias 'cd..'='cd_up'
और उपयोग:
$ cd.. 7
युपीडी:
# cd up to n dirs
# using: cd.. 10 cd.. dir
function cd_up() {
case $1 in
*[!0-9]*) # if no a number
cd $(pwd | sed -r "s|(.*/$1[^/]*/).*|\1|") # search dir_name in current path, if found - cd to it
;; # if not found - not cd
*)
cd $(printf "%0.0s../" $(seq 1 $1)); # cd ../../../../ (N dirs)
;;
esac
}
alias 'cd..'='cd_up' # can not name function 'cd..'
उपयोग: या अधिक शक्तिशाली संस्करण बनाने के लिए, सीडी वर्तमान पथ में नाम dir रहे हैं:
$ cd /home/user/documents/projects/reports/2014-10-01
$ cd.. proj
$ pwd
> /home/user/documents/projects
आप इस समाधान का प्रयास कर सकते हैं। यह मेरे लिए काम ठीक है:
#!/bin/bash
#this sctipt should take one parameter - number of steps. And do "cd" command step times.
# example usage: cd `cde 3`
NEW_PATH=$(pwd)
step="../"
upper=""
for i in seq $1
do
upper="$upper$step"
done
echo $upper
मैं ~/.barsh फ़ाइल में उर्फ बना दिया है। और यह मेरे लिए ठीक काम करता है।
उदाहरण, तीन फ़ोल्डर्स के लिए उदाहरण।
$ सीडी `सीडीई 3`
आप अपने .bashrc
के लिए निम्न समारोह जोड़ सकते हैं:
# ~/.bashrc
up() {
for D in $(seq 1 $1);
do
cd ..
done
}
तो उपयोग बस होगा:
user ~ $ up 3
user/$
मैं कहाँ की नकल की से याद नहीं है यह फ़ंक्शन, लेकिन यह मेरे लिए बहुत अच्छा काम करता है (उदाहरण के लिए आप .bashrc
फ़ाइल डाल सकते हैं)
up() { local p= i=${1:-1}; while ((i--)); do p+=../; done; cd "$p$2" && pwd; }
उदा 7 निर्देशिकाओं को जाने के लिए up 7
टाइप करना आवश्यक है यह निफ्टी फ़ंक्शन दोनों दिशाओं में बढ़ने का समर्थन करता है।
आप /एक/बी/सी/डी फिर '1' में हैं, तो इतने पर /a/b/सी के लिए ले जाएगा, और। बहुत मानक है और अधिकांश अन्य उत्तरों में शामिल है।
अब, विशेष भाग के लिए; नकारात्मक संख्याओं का उपयोग करके आप दूसरी दिशा से ऊपर ले जाते हैं। इसलिए, यदि आप /a/b/c/d में हैं, तो 'अप -1' आपको / पर ले जाएगा, और इसी तरह।
function up() {
UP=$1
if [[ $UP =~ ^[\-0-9]+$ ]]; then
if ((UP<0)); then
UP=${UP#-}
cd $(echo $PWD | cut -d/ -f1-$((UP+1)))
else
cd $(printf "%0.s../" $(seq 1 ${UP}));
fi
fi
}
github पर डाउनलोड/इंस्टॉल करने के लिए उपलब्ध है।
,
function cdd
for x in (seq $argv)
cd ..
end
end
और अपने पर सहेजें: ~/.config/मछली/कार्य/cdd.fish
और बस $ cdd 3
3 निर्देशिकाओं जाने के लिए।
मैंने फ़ंक्शन को संशोधित किया ताकि वह केवल सीडी को कॉल कर सके। यह पिछली निर्देशिका पर वापस जाने के लिए 'cd -' की क्षमता को संरक्षित करता है। –
एक तरफ ध्यान दें, दोनों स्तरों पर 'सीडी..' और' सीडी .. 'दोनों स्तरों पर जाने के लिए विंडोज़ के बराबर हैं लेकिन लिनक्स बहुत सख्त है और गायब स्थान की वजह से अमान्य कमांड के रूप में' cd..' कमांड को अस्वीकार करता है । – RBT