මම pushd සහ popd විධාන භාවිතා කරන්නේ කෙසේද?


368

දෙකම ප්රායෝගික ප්රයෝජන මොනවාද pushdසහ popdපුරා මේ ආඥා දෙක භාවිතා වාසියක් නොමැති විට cdහා cd -?

සංස්කරණය : මම නාමාවලි සමඟ අඩුක්කුව තබාගැනීම සඳහා මෙම නියෝග හෝ හේතු දෙකම සඳහා භාවිතා සමහර ප්රායෝගික උදාහරණ හොයන්නේ (ඔබ ටැබ් අවසන් ඇති වූ විට, cd -, රස සඳහා යොමුවීම් cd ..ආදිය).

Answers:


335

pushd,, popdසහ ඩිරෙක්ටරිdirs තොගය හැසිරවීමට ඔබට ඉඩ සලසන ෂෙල් බිල්ඩින් වේ. මෙය නාමාවලි වෙනස් කිරීමට භාවිතා කළ හැකි නමුත් ඔබ පැමිණි නාමාවලිය වෙත ආපසු යන්න.

උදාහරණයක් වශයෙන්

පහත නාමාවලි සමඟ ආරම්භ කරන්න:

$ ls
dir1  dir2  dir3

තල්ලු 1 සිට dir1 දක්වා

$ pushd dir1
~/somedir/dir1 ~/somedir
$ dirs
~/somedir/dir1 ~/somedir

dirsවිධානය සනාථ කරන්නේ අපට දැන් ඩිරෙක්ටරි 2 ක් ඇති බවයි. dir1සහ මුල් ඩිර් , somedir. සටහන: අපගේ "වත්මන්" නාමාවලිය වේ ~/somedir/dir1.

pushd to ../dir3 (අපි දැන් ඇතුළේ සිටින නිසා dir1)

$ pushd ../dir3
~/somedir/dir3 ~/somedir/dir1 ~/somedir
$ dirs
~/somedir/dir3 ~/somedir/dir1 ~/somedir
$ pwd
/home/saml/somedir/dir3

dirsපෙන්වන්නේ අපට දැන් ඩිරෙක්ටරි 3 ක් ඇති බවයි. dir3,, dir1සහ somedir. දිශාව සැලකිල්ලට ගන්න. සෑම නව නාමාවලියක්ම වමට එකතු වේ. අපි ඩිරෙක්ටරි අක්‍රිය කිරීමට පටන් ගත් විට, ඒවා වමේ සිට ද පැමිණේ.

නාමාවලි අතින් වෙනස් කරන්න ../dir2

$ cd ../dir2
$ pwd
/home/saml/somedir/dir2
$ dirs
~/somedir/dir2 ~/somedir/dir1 ~/somedir

දැන් පොප් ඩිරෙක්ටරි ආරම්භ කරන්න

$ popd
~/somedir/dir1 ~/somedir
$ pwd
/home/saml/somedir/dir1

අපි නැවත පැමිණ ඇති බව සැලකිල්ලට ගන්න dir1.

නැවත පොප් කරන්න ...

$ popd
~/somedir    
$ pwd
/home/saml/somedir

අපි පටන් ගත් තැනට අපි ආපසු ආවා somedir.

ටිකක් අවුල් සහගත විය හැකිය, නමුත් තොගයේ ප්‍රධානියා ඔබ දැනට සිටින නාමාවලියයි. එබැවින් අපි ආපසු ගිය somedirවිට මෙය dirsපෙන්වුවද:

$ dirs
~/somedir

අපේ තොගය ඇත්ත වශයෙන්ම හිස් ය.

$ popd
bash: popd: directory stack empty

22
ස්තූතියි, තොග සංකල්පය සහ මෙම විධානයන් ක්‍රියාත්මක වන ආකාරය මට සම්පූර්ණයෙන්ම වැටහෙයි. කෙසේ වෙතත්, මම නාමාවලි සමඟ සිරස්ව තබා ගැනීම සඳහා ප්‍රායෝගික හේතු කිහිපයක් සොයමි (ඔබට ටැබ් සම්පුර්ණ වූ විට cd -, කෙටි කිරීම සඳහා අන්වර්ථයන් cd ..ආදිය).
සින්ටැග්මා

28
මම බොහෝ විට pushd& popdස්ක්‍රිප්ට් භාවිතා කරමි b / c ඔවුන් මා පැමිණියේ කොහෙන්දැයි මතක තබා ගැනීමෙන් මාව බේරා ගනී, මට සෑම විටම popdමා පැමිණි තැන සිට ආපසු යාමට හැකිය. මම සාමාන්‍යයෙන් කරන්නේ popd >/dev/null 2>&1එය නිහ make කිරීමටයි. මම සෑම දිනකම මගේ කවචයේ සීඩී භාවිතා කරමි. මෙම ලිපියේ තවත් කාලය ඉතිරි කිරීමේ ඉඟි කිහිපයක් ඇත: thegeekstuff.com/2008/10/… .
slm

2
Ar ගැරට් - මට පිළිසිඳ ගත හැකි කිසිවක් නැත.
slm

6
ArGarrett @slm cd -අවසාන ඩිරෙක්ටරිය පමණක් ලුහුබඳින බැවින්, ඔබ විසින් ශ්‍රිතයක් අමතන්නේ නම් එය අභ්‍යන්තරව ඩිරෙක්ටරියද වෙනස් කරයි. එවැනි අවස්ථාවකදී, ශ්‍රිතය යළි පිහිටුවීම අවසන් වනු ඇත - ඔබගේ වත්මන් නාමාවලියට මිස ඔබට නැවත පැමිණීමට අවශ්‍ය නාමාවලිය නොවේ. pushd / popd යනු ආරක්ෂිතම ක්‍රමයයි. සටහන: මම මගේ න්‍යාය අත්හදා බලා නැත.
ද්විමය ෆිලේ

5
~/somedir/dir3පළමුවැන්නෙන් පසු ආපසු නොයන්නේ ඇයි popd?
ziyuang

215

නැත සඳහා ඇත්තටම ප්රයෝජනවත් භාවිතය නඩුව pushdහා popdවිධාන ෆෝල්ඩර කිහිපයක් සමග එකවර වැඩ සඳහා.

ගණනය කර ඇති බැවින් ඔබට තොගය ඉතා පහසුවෙන් සැරිසැරීමට හැකිය. තේරුම, වැඩ කරන අතරතුරදී ඔබට වැඩ කරන ෆෝල්ඩර කිහිපයක් තිබිය හැකිය.

පහත සරල උදාහරණයක් බලන්න.


පළමුව, අපි උදාහරණ ෆෝල්ඩර ව්‍යුහය නිර්මාණය කරමු.

    user@vb:~$ mkdir navigate
    user@vb:~/navigate$ mkdir dir1
    user@vb:~/navigate$ mkdir dir2
    user@vb:~/navigate$ mkdir dir3

එවිට ඔබට ඔබගේ සියලු ෆෝල්ඩර තොගයට එකතු කළ හැකිය:

    user@vb:~/navigate$ pushd dir1/
    ~/navigate/dir1 ~/navigate
    user@vb:~/navigate/dir1$ pushd ../dir2/
    ~/navigate/dir2 ~/navigate/dir1 ~/navigate
    user@vb:~/navigate/dir2$ pushd ../dir3/
    ~/navigate/dir3 ~/navigate/dir2 ~/navigate/dir1 ~/navigate

ඔබට එය සොයා බැලිය හැක්කේ:

    user@vb:~/navigate/dir3$ dirs -v
     0  ~/navigate/dir3
     1  ~/navigate/dir2
     2  ~/navigate/dir1
     3  ~/navigate

ආරක්ෂිතව සැරිසැරීමට, ඔබ අවසාන (ශුන්‍ය) ෆෝල්ඩරය දෙවරක් එකතු කළ යුතුය, මන්ද එය සැමවිටම නැවත ලියනු ලැබේ:

    user@vb:~/navigate/dir3$ pushd .
    user@vb:~/navigate/dir3$ dirs -v
     0  ~/navigate/dir3
     1  ~/navigate/dir3
     2  ~/navigate/dir2
     3  ~/navigate/dir1
     4  ~/navigate

දැන්, ඔබට මෙම ෆෝල්ඩර හරහා පැන පැන ෆෝල්ඩර සඳහා අන්වර්ථයන් සමඟ වැඩ කළ හැකිය. පහත දැක්වෙන කොටස ස්වයං පැහැදිලි කිරීමක් යැයි මම සිතමි.

    user@vb:~/navigate/dir3$ cd ~4
    user@vb:~/navigate$ dirs -v
     0  ~/navigate
     1  ~/navigate/dir3
     2  ~/navigate/dir2
     3  ~/navigate/dir1
     4  ~/navigate
    user@vb:~/navigate$ cd ~3
    user@vb:~/navigate/dir1$ dirs -v
     0  ~/navigate/dir1
     1  ~/navigate/dir3
     2  ~/navigate/dir2
     3  ~/navigate/dir1
     4  ~/navigate
    user@vb:~/navigate/dir1$ touch text.txt
    user@vb:~/navigate/dir1$ cp text.txt ~2
    user@vb:~/navigate/dir1$ ls ~2
    text.txt
    user@vb:~/navigate/dir1$ dirs -v
     0  ~/navigate/dir1
     1  ~/navigate/dir3
     2  ~/navigate/dir2
     3  ~/navigate/dir1
     4  ~/navigate

අමතර ඉඟිය නම් අන්වර්ථ කිහිපයක් නිර්මාණය කිරීමයි dirs -v.

උදාහරණයක් වශයෙන්:

# In ~/.bashrc
alias dirs="dirs -v"

35
ඔබට මෙම තොගය ඉවත් කළ හැකියdirs -c
Jun Murakami

26
+1 ඇත්ත වශයෙන්ම ප්‍රායෝගික උදාහරණ කිහිපයක් ලබා දීම සඳහා. මෑන් පිටුවෙන් pushd / popd කරන්නේ කුමක්දැයි බැලීම පහසුය, නමුත් dirs සහ cd ~ # මුලදී පැහැදිලි නැත.
Scribblemacher

ඒ වෙනුවට ඔබට මේ ආකාරයේ වැඩ ප්‍රවාහයක් සඳහා ෆාස්ඩ් වැනි විසඳුමක් භාවිතා කළ හැකිය
WuTheFWasThat

2
Un ජුන්, එක් වෙඩි පහරකින් නාමාවලි 3 ක් සෑදීමට "mkdir dir {1,2,3}" ඇත.
බුලට් එම්.

1
Un ජුන්මුරකාමි මෙය මගේ වසර බවට පත් කළේය! සුබ 2020!
ඩේවිඩ් වෙස්ට්

43

සීඩී මඟින් ඔබට කළ නොහැකි දේ ඩර්ස් ස්ටක් භාවිතා කිරීම සඳහා එක් සරල භාවිත අවස්ථාවක්:

pushd .වත්මන් නාමාවලිය XX dirsගොඩගැසීමට එකතු කරයි . පසුව, ඔබට භාවිතයෙන් එහාට මෙහාට යා හැකි අතර, ඔබ ඩිරෙක්ටරි ගසෙහි කොතරම් "දුරින්" සිටියද cdඔබ XX වෙත ආපසු popdයා හැකිය (බහුවිධ මට්ටම්, පැති දෙකට පැනිය හැකිය). බෑෂ් ස්ක්‍රිප්ට් වල විශේෂයෙන් ප්‍රයෝජනවත් වේ.


2
මම හිතන්නේ මෙය බොහෝ විට මම ප්‍රයෝජන ගන්නා ලක්ෂණයයි. මන්ද pushd/ popdස්වාධීනව වැඩ කරන නිසා cd, ඔබට ඒවා වඩා ස්ථාවර පිටු සලකුණක් ලෙස භාවිතා කළ හැකිය cd -.
ගෝර්ඩන් බීන්

මට මෙය සත්‍ය නොවේ. මම සීඩී භාවිතා කරන සෑම අවස්ථාවකම මගේ තොගය වෙනස් වේ.
හරේන්ද්‍ර සිං

ඔහ්, එය zsh භාවිතා කිරීමේ coz විය, මම bash ලෙස වෙනස් කළ විට එය හොඳින් ක්‍රියාත්මක වේ
හරේන්ද්‍ර සිං

4
සීඩී -, අයිඑම්ඕ සමඟ සංසන්දනය කිරීමේදී ඇති එකම වැදගත් පිළිතුර මෙයයි. තල්ලු කරන ලද foo ද යන්න සම්බන්ධයෙන්; <අහඹු dir වෙනස් කිරීම>; popd a = foo ට වඩා වටිනවා; cd $ a; <අහඹු dir වෙනස් කිරීම>; cd $ a ... ස්ක්‍රිප්ට් සඳහා මට කලින් (පුෂ්ඩ්) හි ඉතා කුඩා සින්ටැක්ටික් පහසුවක් දැකිය හැකිය, නමුත් පසුකාලීන (පැහැදිලි) විචල්‍යයන්හි පැහැදිලි බවෙහි විශාල දියුණුවක්! අන්තර්ක්‍රියාකාරී සැසියක් සඳහා, මගේ නාමාවලි ධූරාවලිය නිසි ලෙස සංවිධානය වී ඇතැයි මම සිතමි, මට අහිමි වුවහොත් cd back / back / to / clear / path.
ජෑන් කියු පෙබ්ලික්

1
Are හරේන්ද්‍රසිංහ ඔබ AUTO_PUSHDපිහිටුවා නැතිද? එය cdහැසිරීමට pushdසලස්වයි, එය සකසන්න එපා සහ ඔබ නැවත "සාමාන්‍ය හැසිරීමට" යොමු වනු ඇත.
මැග්නස්

10

pushdසහ popdතොගයේ ඇති නාමාවලි හැසිරවීමට ඔබට ඉඩ සලසයි.

ඔබ pushdඩිරෙක්ටරියක් වන විට, ඔබ වත්මන් ඩිරෙක්ටරිය තොගයේ තබා පරාමිතියක් ලෙස දක්වා ඇති ඩිරෙක්ටරිය වෙනස් කරයි.

popd තොගයේ ඇති නාමාවලිය වෙත ආපසු යාමට ඔබට ඉඩ සලසයි.

ඔබ පුනරාවර්තනය කරන්නේ නම්, ඩිරෙක්ටරි සංචලනය යම් ආකාරයක සංරක්‍ෂණය වනු ඇති අතර ඔබ සුරකින ලද නාමාවලි වෙත ආපසු හැරවිය හැකිය.


8

bash සඳහා , මූලික වශයෙන්: cd භාවිතා කරනවා වෙනුවට කෙනෙකුට pushdප්‍රායෝගික භාවිතයෙන් නාමාවලි වෙනස් කිරීමට භාවිතා කළ හැකිය : සංචාරය කළ නාමාවලි වල ඉතිහාසය සුරකින ලදි (නිවැරදිව: සිරස්ව ඇති) සහ කෙනෙකුට ඒවා අතර මාරු විය හැකිය

pushd /home; pushd /var; pushd log

තොග භාවිතය බැලීමට dirsසහ පහසු සංචාලනය සඳහා ("සිරස්-ඇතුළත් කිරීම්" භාවිතයේ අංක ලබා ගැනීමට:

dirs -v

ප්‍රතිදානය:

me@myhost:/home$ dirs -v
 0  /home
 1  /var
 2  /tmp

දැන් මෙම අංක භාවිතා කරන්න cdසහ ~කැමති ලෙස:

cd ~1

නමුත් මෙම සංඛ්‍යා දැන් නැවත සකස් කර ඇති අතර "0" ස්ථානය වෙනස් වනු ඇත, එබැවින් pushdනාමාවලිය ඉහළ ස්ථානයට දෙවරක් (හෝ 0 වන ස්ථානයේ ව්‍යාජයක් භාවිතා කරන්න) වැනි:

me@myhost:/home$ dirs -v
 0  /home
 1  /home
 2  /var
 3  /tmp

දැන් 1..3 එහි ස්ථානගත වනු ඇත

(වත්මන් නාමාවලිය තොගයෙන් මුදා හැරීමට / ඉතිහාස භාවිතයෙන් මකා දැමීමට popd)


4

පුෂ්ඩ් / පොප්ඩ් යනු එතරම් සරල සංකල්පයක් වන අතර, මෙම විධානයන් 'ඩිරෙක්ටරි ස්ටක් හසුරුවන' විධානයන් ලෙස අර්ථ දැක්වීමෙන් මිනිසුන් එය ඉගැන්වීමට නැඹුරු වන බැවින් මගේ අදහස අනුව එය ඉතා ව්‍යාකූල වේ.

මම එය වෙනස් ආකාරයකින් බලමි:

pushd [folder_name] - [folder_name] වෙත කැමැත්ත cd සහ ඇත ලේඛනගත වන අතර අඩුක්කුව හොඳම බහලුම හැම විටම ඔබ සිටින වත්මන් හිස් තීරුවෙහි වනු ඇත [folder_name] තුළ හිස් තීරුවෙහි අඩුක්කුව වන ගමනාන්තය

popd - පළමුවෙන්ම ඔබව තොගයේ ඉහළින් ඇති නාමාවලි වාර්තාවට ඇතුළත් කර ප්‍රලේඛනය ඉවත් කරනු ඇත (එය dir stack වෙතින් ඉවත් කරන්න)

dirs - dir stack මුද්‍රණය කරනු ඇත (වම් කෙළවරේ වත්මන් නාමාවලිය වන dir Db ලෙස සැලකිය හැකිය (තොගයේ ඉහළ)

එබැවින් වඩාත් ජනප්‍රිය භාවිත අවස්ථා 2:

නඩුව 1 භාවිතා කරන්න: pushd සහ popd භාවිතා කරමින් සැරිසැරීම

root@mypc:/main/$ ls
dir1  dir2  dir3  dir4

root@mypc:/main/$ dirs   # prints the current stack
/main

root@mypc:/main/$ pushd dir1    # Will cd to dir1 and document dir1 in dir stack, stack is now:
/main/dir1 /main 
root@mypc:/main/dir1$    # I am now in /main/dir1

root@mypc:/main/dir1$    # Now let's go wild and document whatever I want
root@mypc:/main/dir1$ pushd ../dir2 
root@mypc:/main/dir2$     # Woo I am in /main/dir2
root@mypc:/main/dir2$ pushd ../dir3 
root@mypc:/main/dir3$     # Woo I am in /main/dir3
root@mypc:/main/dir3$ pushd ../dir4 
root@mypc:/main/dir4$     # Woo I am in /main/dir4
root@mypc:/main/dir4$ dirs   # Now dir stack is:
/main/dir4 /main/dir3 /main/dir2 /main/dir1 /main

මම ලේඛනගත කළ එම ෆෝල්ඩර වෙත නැවත සැරිසැරීමට කැමති බැවින් මම ඉහත සඳහන් කළ බව කියමු!

මම අතින් සීඩී නම්, මම ඉහළ ඩිර් ස්ටැක් ප්‍රවේශයට බලපානු ඇති බව සලකන්න (එය සැමවිටම වත්මන් ඩිර් වේ)

root@mypc:/main/dir4$ cd ..   # Now dir stack is:
# (note that /main appear in the leftmost as well which is the top of the stack)
/main /main/dir3 /main/dir2 /main/dir1 /main
root@mypc:/main$ 

දැන් අපි පසුපසට ගමන් කරමු:

root@mypc:/main$ popd
root@mypc:/main$     # Still in /main since it was at the top of the dir stack
root@mypc:/main$ dirs    # Stack is now:
/main/dir3 /main/dir2 /main/dir1 /main

root@mypc:/main$ popd
root@mypc:/main/dir3$ popd    # Woo in dir3 now, about to navigate to dir2
root@mypc:/main/dir2$ popd    # Woo in dir2, about to navigate to dir1
root@mypc:/main/dir1$ dirs    # Stack is now:
/main

නැවතත් මට අවශ්‍ය ඕනෑම දෙයක් ලේඛනගත කර වෙනත් ඩිර් එකකට අතින් සැරිසැරීමට හැකි වන අතර එවිට මම තොගයට ඇතුළත් කළ ලේඛනගත ඩර් වෙත පහසුවෙන් ආපසු යා හැකිය.

නඩුව 2 භාවිතා කරන්න: සංඛ්‍යාත්මක තොග දර්ශකය භාවිතා කරමින් සැරිසැරීම

මම තල්ලු කළ dir4 dir3 dir2 dir1 භාවිතා කරමින් තල්ලු කළ බව කියමු, දැන් ධාවනය වන dir -v පෙන්වන්නේ:

root@mypc:/main$ dirs -v
 0  /main/dir1  (this is the current dir you are in always)
 1  /main/dir2
 2  /main/dir3
 3  /main/dir4

දැන් ඔබට තොග දර්ශකය භාවිතා කරමින් නාමාවලි සම්බන්ධ ඕනෑම ලිනක්ස් මෙහෙයුමක් කළ හැකිය:

root@mypc:/main$ cp ~2/temp.txt ~3/new_temp.txt    # this will run in the background, something like:
# cp /main/dir2/temp.txt  /main/dir3/new_temp.txt

ඔබට dir stack වෙතින් නිශ්චිත ප්‍රවේශයක් මකා දැමිය හැකිය:

root@mypc:/main$ popd ~4

"ලේඛනගත කිරීම" යන වචන භාවිතා කිරීම හෝ යම් ආකාරයක ඩීබී ලෙස ඩිර් තොගය ගැන සිතීම සංකල්පය සරල කරයි යැයි සිතමු!


3

සරලව කිවහොත් - ඔබට ඩිරෙක්ටරි 2 කට වඩා වැඩි ගණනක් අතර සැරිසැරීමට අවශ්‍ය වූ විට, සාමාන්‍යයෙන් කිහිප වතාවක් ඉදිරියට සහ පසුපසට යන්න, cd -එය ෆෝල්ඩර 2 න් ඔබ්බට කිසිවක් කපා නොගනු ඇත.

උදාහරණයක් ලෙස, ඔබේ බෆරයේ ඉතිහාසය දෙස බැලීමෙන් හෝ දිගු මාර්ගයක් සම්පූර්ණ කිරීමෙන් පෙර දිගු මාර්ග සමඟ නැවත පැමිණීමට උත්සාහ කරනවා වෙනුවට ඔබ වැදගත් ඒවා ගොඩ ගසා ඇති අතර අවශ්‍ය නම් ඒවායේ අංකයෙන් පමණක් ඔවුන් වෙත පහසුවෙන් ගමන් කළ හැකිය. සංකීර්ණ නාමාවලි ව්‍යුහයන් සහ දිගු මාර්ග අතර භ්‍රමණය වීම ඉතා සිනිඳු හා වේගවත් වේ.

ඔබේ වැඩ ප්‍රවාහයේ නම්‍යශීලීභාවයට ඉඩ දෙමින් තොගය නැවත ඇණවුම් කිරීමට හෝ ඔබට තවදුරටත් අවශ්‍ය නොවන නාමාවලි පිටතට ගැනීමට බිල්ඩින්ස් ඔබට ඉඩ දෙයි.

ඩිරෙක්ටරි කිහිපයක් පුරා විහිදෙන මෙහෙයුම් සඳහා ඩිරෙක්ටරි ස්ටැකිං ස්ක්‍රිප්ට් වලද භාවිතා කළ හැකිය.


2

ඩර්ස් / පොප්ඩ් / පුෂ්ඩ් භාවිතය ටිකක් අපහසු බව මට පෙනී ගියේය. පහත දැක්වෙන කේතය .alias වෙත එක් කිරීමෙන් මම tcsh හි මගේ පුද්ගලික විසඳුම ඉදිරිපත් කළෙමි

  foreach b (. , - 0 1 2 3 4 5 6 7 8 9 )
    alias p$b       'set a=`pwd`; echo $a >! ~/.mydir'$b
    alias cd$b      'cd "`cat ~/.mydir'$b'`"'
    alias del$b     'rm -v ~/.mydir'$b
    alias home$b    'set a="~"; echo $a >! ~/.mydir'$b
  end
    alias cdl       'grep / ~/.mydir*'

මේ ආකාරයෙන් මම අන්වර්ථ කළෙමි, උදාහරණයක් ලෙස, "p." දැනට වැඩ කරන dir file / .mydir ගොනුවට සුරැකීමට. සහ "සීඩී." මම කැමති ඕනෑම තැනක සහ ඕනෑම තැනක එම ඩිර් නැවත ලබා ගැනීමට. "ඩෙල්." අදාළ ගොනුව ඉවත් කරයි; "නිවස." dir ගෙදරට සකසයි dir (cd; p. ට සමාන); "සීඩීඑල්" මඟින් සුරකින ලද ඩර්ස් මොනවාදැයි ලැයිස්තුගත කරයි. Account / .mydir වෙනුවට ඔබ ~ / Dropbox / .mydir $ b (හෝ වෙනත් වලාකුළු සේවාවක් උදා.


1

මම මෙය මගේ bash_profile සහ .bashrc හි මේ ආකාරයට භාවිතා කරමි

vi .bash_profile
alias dirs="dirs -v"
source d.sh
:wq

vi .bashrc
alias dirs="dirs -v"
:wq

vi d.sh
pushd ~/Documents/GIT/seiso-data
pushd ~/Documents/GIT/ewe/EosRegistry
pushd ~/Documents/GIT_LODGING/site-cookbooks
pushd ~/Documents/CHEF_LODGING
pushd  .
:wq

මගේ ටර්මිනලයේ මෑතකදී භාවිතා කළ නාමාවලි අතරට පනින්න එය මට උදව් කරයි. :-) පුෂ්ඩ් වෙනුවට පොප්ඩ් භාවිතා කිරීමට එය ඔබට උපකාරී වේ යැයි සිතමි


1

ඔබ මෑතකදී භාවිතා කළ නාමාවලි දෙක අතර පමණක් ටොගල් කිරීමට භාවිතා කිරීම cdසහ cd -ඉඩ ලබා දේ. ඔබගේ "නාමාවලි වැඩකරන කට්ටලය" ප්‍රමාණය දෙකකි.

භාවිතා කිරීමෙන් pushd, ඔබගේ වැඩකරන කට්ටලයේ අත්තනෝමතික ලෙස නාමාවලි විශාල සංඛ්‍යාවක් තබා ගත හැකිය.

මම pushdවැඩි කාලයක් භාවිතා කරනවාට වඩා cd. ඔබ සක්‍රීය ඩිරෙක්ටරි තොගයක් ගොඩනඟා ගත් පසු pushd directory_name, ඔබට දවස පුරා ඒවා අතරට පනින්න pushd ~#.

pushd dir1
pushd ../dir2
pushd /full/path/to/dir3

# There are now three directories in the stack.

pushd ~3
pushd ~2

# The same three directories are still on the stack, 
# just in a different order.

මම popdකලාතුරකින් භාවිතා කරන්නේ, මම එම ඩිරෙක්ටරිය භාවිතා කර අවසන් බව දැනගත් විට, ඩිරෙක්ටරියක් තොගයෙන් ඉවත් කිරීමට අවශ්‍ය වූ විට පමණි.

නාමාවලිය වෙත ගොස් එය තොගයෙන් ඉවත් කරන්න:

popd ~2

වත්මන් ඩිරෙක්ටරියේ රැඳී සිට තවත් ඩිරෙක්ටරියක් තොගයෙන් ඉවත් කරන්න:

popd +2

ඔබ අවසන් වන්නේ වැඩ කරන ශෛලියකින් වන අතර එය බහු පර්යන්ත කවුළු හෝ ටැබ් විවෘත කර ඇත (ඔබ සක්‍රියව වැඩ කරන සෑම නාමාවලියකටම එකක්), නමුත් සියල්ලම එක් පර්යන්තයක. මෙය තිරයේ දේපල වෙළඳාම් සුරකින අතර, ඩිරෙක්ටරි මාර්ග සියල්ලම එකම කවචයකින් ලබා ගත හැකි නිසා, ඔබට මෙවැනි දේ කළ හැකිය:

  • ඔබ දැනට වැඩ කරන නාමාවලි අතර ගොනු පිටපත් කරන්න
  • වෙනත් ඩිරෙක්ටරියක් තුළට නොයා ලිපිගොනු බැලීම හෝ සංස්කරණය කිරීම

උදාහරණ:

cp ~2/myfile.txt ~4
less ~2/myfile.txt

දී tcsh(නමුත් bash), ඔබ පවා ගොනු ඔබේ බහලුම අඩුක්කුව සුරැකීමට සහ පසුව එය නැවත ලබා ගත හැක.

සුරකින්න:

dirs -S ~/dirstack

ප්‍රතිස්ථාපනය කරන්න:

dirs -L ~/dirstack

එසේ නැත්නම්, ඒ වෙනුවට ~දී bashඇති උදාහරණ =භාවිතය සඳහා tcsh.

pushd =2
popd =4
popd +1
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.