it-swarm.dev

كيف اجعل "اسم مستعار" لمسار طويل؟

حاولت إنشاء "اسم مستعار" للمسار الذي أستخدمه غالبًا أثناء عمل البرامج النصية لـ Shell. جربت شيئًا ما ، لكنه فشل:

myFold="~/Files/Scripts/Main"
cd myFold

bash: cd: myFold: No such file or directory

كيف اجعلها تعمل؟
ومع ذلك ، cd ~/Files/Scripts/Mainworks.

68
bashboy

نظرًا لأنه متغير بيئة (الاسم المستعار له تعريف مختلف في bash) ، فأنت بحاجة إلى تقييمه باستخدام شيء مثل:

cd "${myFold}"

أو:

cp "${myFold}/someFile" /somewhere/else

لكنني أجد أنه من الأسهل بالفعل ، إذا كنت تريد فقط سهولة التبديل في هذا الدليل ، إنشاء حقيقي اسم مستعار (في أحد ملفات بدء التشغيل bash مثل .bashrc) ، لذلك يمكنني حفظ ضغطات المفاتيح:

alias myfold='cd ~/Files/Scripts/Main'

ثم يمكنك فقط استخدام (بدون cd):

myfold

للتخلص من التعريف ، تستخدم unalias. يظهر النص التالي الكل من هذه في العمل:

pax> cd ; pwd ; ls -ald footy
/home/pax
drwxr-xr-x 2 pax pax 4096 Jul 28 11:00 footy

pax> footydir=/home/pax/footy ; cd "$footydir" ; pwd
/home/pax/footy

pax> cd ; pwd
/home/pax

pax> alias footy='cd /home/pax/footy' ; footy ; pwd
/home/pax/footy

pax> unalias footy ; footy
bash: footy: command not found
91
paxdiablo

ربما من الأفضل استخدام الروابط

لينك لينك

ارتباط رمزي أو ضعيف (ملفات أو أدلة ، وثائق أكثر مرونة وتوثيق ذاتي)

#      Source                            Link
ln -s /home/jake/doc/test/2000/something /home/jake/xxx

هارد لينك

رابط ثابت (ملفات فقط ، أقل مرونة وليس توثيق ذاتي)

#    Source                            Link
ln /home/jake/doc/test/2000/something /home/jake/xxx

كيفية إنشاء رابط إلى دليل

تلميح : إذا كنت لا تحتاج إلى رؤية الرابط في منزلك ، فيمكنك تشغيله بنقطة. . ثم سوف تكون مخفية افتراضيا ثم يمكنك الوصول إليها مثل

cd ~/.myHiddelLongDirLink
6
Mahmoud Bahnasy

أولاً ، تحتاج إلى $ للوصول إلى قيمة "myFold" لجعل الشفرة في السؤال تعمل:

cd "$myFold"

لتبسيط هذا يمكنك إنشاء اسم مستعار في ~/.bashrc:

alias cdmain='cd ~/Files/Scripts/Main'

لا تنسَ الحصول على مصدر .bashrc مرة واحدة لإتاحة الاسم المستعار في جلسة bash الحالية:

source ~/.bashrc

يمكنك الآن التغيير إلى المجلد باستخدام:

cdmain
5
hek2mgl

يمكنك إضافة أي مسارات تريدها إلى علامة التجزئة للباش الخاص بك:

hash -d <CustomName>=<RealPath>

ستتمكن الآن من cd ~<CustomName>. لجعلها دائمة إضافة إلى bashrc النصي الخاص بك.

لاحظ أن هذا التصنيف يهدف إلى توفير ذاكرة تخزين مؤقت للباش لا يحتاج إلى البحث عن المحتوى في كل مرة يتم فيها تنفيذ الأمر ، وبالتالي سيتم مسح هذا الجدول في الأحداث التي تبطل ذاكرة التخزين المؤقت ، على سبيل المثال تعديل $PATH.

5
Rodrigo Martins

أولاً ، تحتاج إلى إزالة علامات الاقتباس:

[email protected]:~$ myFolder=~/Files/Scripts/Main

تمنع الاقتباسات Shell من توسيع التلدة إلى معناه الخاص المتمثل في كونك دليل $HOME.

يمكنك بعد ذلك استخدام $myFolder بيئة متغير شل:

[email protected]:~$ cd $myFolder
[email protected]:~/Files/Scripts/Main$

لإنشاء اسم مستعار ، تحتاج إلى تحديد الاسم المستعار:

alias myfolder="cd $myFolder"

يمكنك بعد ذلك التعامل مع هذا النوع من الأوامر:

[email protected]:~$ myFolder
[email protected]:~/Files/Scripts/Main$
5
David W.

خيار آخر هو استخدام رابط رمزي. أي:

ln -s ~/Files/Scripts/Main ~/myFold

بعد ذلك ، يمكنك إجراء عمليات إلى ~/myFold ، مثل:

cp some_file.txt ~/myFold

والتي سوف تضع الملف في ~/Files/Scripts/Main. يمكنك إزالة الرابط الرمزي في أي وقت باستخدام rm ~/myFold ، والذي سيحتفظ بالدليل الأصلي.

4
dvj

لكن الاسم المستعار الفعلي للدير ممكن أيضًا ، جرب

 myScripts="~/Files/Scripts/Main"
 alias myScripts="cd $myScripts"

بهذه الطريقة لديك اصطلاح تسمية شائع (لكل زوج dir/alias) ، وإذا كنت بحاجة إلى نسخ شيء ما من dir الحالي إلى myScripts ، فلن تضطر إلى التفكير فيه.

IHTH

2
shellter