উবুন্টু ডেস্কটপে ডাবল ক্লিক করে কোনও ফাইল খোলার সময় কীভাবে কর্মক্ষম ডিরেক্টরি পরিবর্তন করবেন?


10

ডাবল ক্লিক করে একটি ফাইল (.pdb ফাইল: প্রোটিন কাঠামো বিন্যাস, কিছু মনে করবেন না) খুলতে চেয়েছিলেন।

"ওপেন উইথ" ম্যানুয়ালি "পাইমল" (একটি প্রোগ্রাম যা .pdb ফর্ম্যাটটি খোলার জন্য) উবুন্টু টুইকের সাথে পরিচালিত করার জন্য নির্দেশিত।

তবে, আমি খুঁজে পেয়েছি যে কার্যকারী ডিরেক্টরিটি হ'ল হোম।

যে ডিরেক্টরিটিতে আমি ফাইলটি খুলিছি সেগুলির অন্যান্য ফাইলগুলি যেমন গুরুত্বপূর্ণ আমি তাদের অ্যাক্সেস করতে চাই।

আমার অনুমান যে "পিডিমল" $ HOM এ কার্যকর করা হয় যখন "পিডিবি ফাইল" (ডাবল-ক্লিক করা ফাইল) এর পরম পথটি আর্গুমেন্ট হিসাবে পাস করা হয়।

আমি অনুমান করি এটি কিছুটা সাধারণ সমস্যা এবং একটি প্রশ্ন জিজ্ঞাসা করুন:

আমি কীভাবে সিস্টেমটিকে "ওয়ার্কিং ডিরেক্টরি" পরিবর্তন করে "ডিরেক্টরিতে যেখানে ফাইলটি ক্লিক করেছি" এবং একটি প্রোগ্রাম চালিয়ে দিতে পারি ?

উত্তর:


16

যদিও এটি বহু বছর পরে, এখানে আমার জন্য কী কাজ করেছে:

Exec=bash -c 'cd "%k" && ~/path/to/your/file'

% কে আপনাকে সবেমাত্র চালু করা লঞ্চারের ডিরেক্টরিটির পথ দেয়।


1
% কে কাজ করেনি (না% ডি) তবে আমার বাশ-সি অংশের প্রয়োজন ছিল
মার্ক ভ্যান দালে

1
খুশি আমি পরোক্ষভাবে সাহায্য করতে পারি। ~সঠিকভাবে সংজ্ঞা দেওয়ার জন্য আপনার বাশ-সি অংশ প্রয়োজন need আপনি যদি সরাসরি / হোম / মার্ক পথ ব্যবহার করেন তবে আপনাকে বাশ-সি লাগবে না।
টয়্সফোরলাইফ

1
বাশ -c কাজটি করেছে। আমাকে অনেক ধন্যবাদ সাহায্য করেছে :)
মুঠু

2
% K ডেস্কটপ ফাইল সহ পুরো পথে সল্ভ করে, তাই cd "%k"কাজ করবে না। তবে আপনি ব্যবহার করতে পারেন cd "$(dirname %k)"
ivant

আমি বিভ্রান্ত, কেন আপনি "% কে" ব্যবহার করে একটি ডিরেক্টরিতে যান এবং তারপরে &&কিছু কমান্ডের সাথে সম্পর্কিত কিছু সম্পাদন করার পরে ~?
vdegenne

5

উপরের সমাধানগুলির কোনওটিই আমার ডেবিয়ানে কাজ করেনি। এছাড়াও %dঅসমর্থিত হয়েছে। দেখুন ডেস্কটপ এন্ট্রি স্পেসিফিকেশন

তাই আমি জিম চালাতে নিম্নলিখিত বাশ স্ক্রিপ্টটি ব্যবহার করছি। প্রথমে আপনাকে নীচের ব্যাশ স্ক্রিপ্ট ফাইল তৈরি করতে হবে এবং এটি সংরক্ষণ করতে হবে /usr/local/bin/run_pymol.sh। আমি ফাইলটি সেভ করেছিলাম /usr/localকারণ এটি মনে xdg-openহয় না যে হোম ডিরেক্টরি বা কী কী তা বোঝা যায় না।

#!/usr/bin/env bash
# change working directory
cd `dirname $1`
# run pymol
/usr/bin/env pymol $@

দ্বিতীয়ত, এই ফাইলটিতে এক্সিকিউটেবল অনুমতি দিন। একটি টার্মিনাল খুলুন এবং অনুমতি দেওয়ার জন্য এবং নিশ্চিত করতে নিম্নলিখিত কমান্ডগুলি টাইপ করুন।

% chmod +x /usr/local/bin/run_pymol.sh
% run_pymol.sh

অবশেষে, আপনার pymol.desktopফাইলটিকে নিম্নলিখিত হিসাবে সংশোধন করুন এবং তারপরে আপনার পাইমলটি প্রথম প্রদত্ত ফাইলটি অবস্থিত ডিরেক্টরিতে শুরু হবে।

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Name=PyMOL Molecular Graphics System
GenericName=Molecular Modeller
Comment=Model molecular structures and produce high-quality images of them
Type=Application
Exec=/usr/local/bin/run_pymol.sh %U
TryExec=pymol
Icon=pymol
MimeType=chemical/x-pdb
Categories=Education;Science;Chemistry;

আশা করি এটি আপনাকে বলছি :-)


3
আমি রাখতে সক্ষম হয়েছি Path=/my/pathএবং এটি ঠিক কাজ করেছে। Path - If entry is of type Application, the working directory to run the program in.
রিপস্টার

2

আমি বুঝতে পারি না কেন সমাধান কেন এত উত্সাহিত হয়েছে, এটি পরম ভিন্ন জিনিস করে। এটি ডেস্কটপ ফাইল যেখানে তাদের কার্যকারী ডিরেক্টরি পরিবর্তন করে, যখন খোলা ফাইল (গুলি) রয়েছে তাদের ক্ষেত্রে ওয়ার্কিং ডিরেক্টরি পরিবর্তন করার প্রশ্ন ছিল।

আমার সমাধান:

Exec=/bin/bash -c 'cd $(dirname $0) && micro $0'

মনে রাখবেন যে .ডেস্কটপ ফাইলগুলির জন্য এনভিভ ভেরিয়েবলগুলি সেট করা আলাদা

Exec=env CPATH=../include /bin/bash -c 'cd $(dirname $0) && micro $0'

0

আপনি যখনই নির্দিষ্ট ফাইলের প্রকারটি খোলেন তখনই আপনি /usr/share/applicationsসেই যথাযথটিকে যেতে পারেন এবং file.desktopডাকে। তারপরে এটি সম্পাদনা করুন এবং execলাইনে লাইনের cd PATH &&শুরুতে যুক্ত করুন ।


-1

ঠিক আছে -

Exec=cd PATH &&  <application-name> %F

% F এর পথে নির্দেশ করার জন্য PATH সংজ্ঞায়িত না হওয়ায় আমার পক্ষে কাজ করেনি। কোনও অ্যাপ্লিকেশন ডেস্কটপ ফাইলে কেবলমাত্র ভেরিয়েবলগুলি হ'ল:

  • % FA একক ফাইলের নাম।
  • % F একাধিক ফাইলের নাম।
  • % ua একক ইউআরএল।
  • % ইউ একাধিক ইউআরএল।
  • % da একক ডিরেক্টরি একটি ফাইল সনাক্ত করতে% f এর সাথে একত্রে ব্যবহৃত।
  • % D একাধিক ডিরেক্টরি। ফাইলগুলি সনাক্ত করতে% F এর সাথে একত্রে ব্যবহৃত হয়।
  • কোনও পথ ছাড়াই% na একক ফাইলের নাম।
  • পাথ ছাড়াই% N একাধিক ফাইলের নাম।
  • % কে ইউআরআই বা ডেস্কটপ ফাইলের অবস্থানের স্থানীয় ফাইল নাম।
  • % v ডিভাইস প্রবেশের নাম।

এটি এখানে রয়েছে:% d হ'ল একক ডিরেক্টরি যা আপনি সন্ধান করছেন এটি একাধিক ডিরেক্টরিতে পরিবর্তিত হওয়ার কোনও মানে হয় না। সুতরাং / ইউএসআর / শেয়ার / অ্যাপ্লিকেশনগুলিতে যান এবং ফাইল অ্যাপ্লিকেশন-নাম.ডেস্কটপ সম্পাদনা করুন (আপনার ক্ষেত্রে পাইমল.ডেস্কটপ); এটি করার জন্য আপনার কাছে অতিরিক্ত সুবিধাগুলি থাকতে হবে। তারপরে "exec =" দিয়ে শুরু হওয়া লাইনটি সন্ধান করুন। এটা সম্ভবত পড়া

Exec=<application-name> %F

(আপনার ক্ষেত্রে এক্সিকি = পিমল% এফ)। এই লাইনটি এতে পরিবর্তন করুন

Exec=cd %d && <application-name> %F

সেই ডেস্কটপ ফাইলটি সংরক্ষণ করুন এবং পরের বার আপনি .pdb ফাইলে ক্লিক করলে আপনার ওয়ার্কিং ডিরেক্টরিটি এই .pdb ফাইলের মধ্যে থাকা উচিত, তাই পাইমলটি আপনার সমস্ত ফাইল দেখতে পাবে।

অবশ্যই, আপনার ফাইলগুলি যেখানে রয়েছে সেই ডিরেক্টরিতে প্রথমে নেভিগেট করার পরে আপনি কমান্ড লাইন থেকে পিমল শুরু করতে পারেন, তবে আমার ধারণা আপনি একটি জিইউআই সমাধান চেয়েছিলেন, সুতরাং আপনাকে একটি সামান্য সম্পাদনা করতে হবে :-)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.