সিডি সহ কোনও ফাইলের পৈতৃক ডিরেক্টরিতে যাচ্ছেন?


9

আমি আমার জন্য কিছু কাজ করার জন্য একটি .sh লিখছি, তবে আমি এখন সেই পয়েন্টে এসেছি যেখানে আমাকে ফাইল /path/to/file.end ফাইল ডিরেক্টরিতে সিডি করতে হয় টার্মিনাল অনুমতি দেয় না

cd /path/to/file.end
bash: cd: /path/to/file.end: Not a directory

দুর্ভাগ্যক্রমে আমি জানি না যে কাজের মতো কোন কাজ নেই, তাই আপনি যদি সহায়তা করতে পারেন তবে ভাল লাগবে!


4
উম, মানে cd /path/to? যে ডিরেক্টরিতে ডিরেক্টরি পরিবর্তন যে ফাইল হবে file.endহয়।
আলা আলী

1
না, ফাইলটি পরিবর্তনশীল, এবং আমি ফাইলটির পাথ প্রবেশ করতে চাই (এটি টার্মিনালে রেখে দিন) এবং তারপরে যে ফোল্ডারে রয়েছে তাতে যেতে চাই
Azsgy

উত্তর:


10

প্রকার cd $( dirname /path/to/file.end)। এটি আপনাকে প্রবেশ করবে /path/to

ব্যাখ্যা:

  • dirnameকোনও ফাইলের জন্য সম্পূর্ণ পাথ ফেরত দেয় (ফাইল নাম ছাড়াই, যা আপনি পেয়ে যাবেন basename) - অর্থাত্ dirname /etc/apt/apt.conf.d/99update-notifierফেরত দেয়/etc/apt/apt.conf.d
  • $(anything)অনুষঙ্গগুলিতে কমান্ডের ফলাফল দ্বারা এক্সপ্রেশনটি প্রতিস্থাপন করা হয়। সুতরাং cd $( dirname /etc/apt/apt.conf.d/99update-notifier)হিসাবে কার্যকর করা হয়cd /etc/apt/apt.conf.d

এর জন্য আরেকটি (তবে পুরানো এবং নিরুৎসাহিত) স্বরলিপিটি ছিল

cd `dirname /path/to/file.end` 

8

আপনি cdএকটি ফাইল প্রবেশ করতে পারবেন না । এখানে একটি (কমান্ড লাইন) ফাংশন রয়েছে যা cdপ্রদত্ত সম্পূর্ণরূপে যোগ্যতাসম্পন্ন ফাইল পাথের জন্য স্বয়ংক্রিয়ভাবে একটি পথে প্রবেশ করবে :

function fcd () { [ -f "$1" ] && { cd "$(dirname "$1")"; } || { cd "$1"; } ; pwd; }

আমি কি এই অধিকার পেয়েছি ?: ফাংশন fcd () {[-f; 1] && {cd $ (/ file.end $ 1); } || {সিডি $ 1; } pwd} প্রতিক্রিয়াটি হ'ল: বাশ: অপ্রত্যাশিত টোকেনের কাছে সিনট্যাক্স ত্রুটি `
পিডাব্লুডি

2
@ আশ্ছ, এর আগে একটি সেমিকোলন দরকার pwd, এবং যদি আপনি একটি লাইনে কোনও ফাংশন সংজ্ঞায়িত করেন তবে তার পরে একটি সেমিকোলন প্রয়োজন pwd
গ্লেন জ্যাকম্যান

@glennjackman ডির কোনও আউটপুট বা পরিবর্তন ছাড়াই ফাংশনটি সবেমাত্র
বেরিয়েছে

ফাংশনটি চালান, তারপরে প্রবেশ করুন echo $?- প্রস্থান স্থিতি কী?
গ্লেন জ্যাকম্যান

আমি নিজেকে সন্দেহ করা উচিত ছিল না। বিকল্পটি আমার কাছে আরও ভাল লাগছিল যখন
_

1

যদি আপনি "/ .." ফাইলের নামের সাথে যুক্ত করেন যা আপনাকে সঠিক ডিরেক্টরিতে নিয়ে যাবে যেমন, যেমন cd /path/to/file.end/..। এটি যাইহোক সাইগউইনের উপর কাজ করে।


4
touch test && cd /home/test/test/..bash: cd: /home/test/test/..: No such file or directory
বাশে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.