অ্যাপ্লিকেশনটিতে একটি ফাইল খোলার জন্য `ওপেন` কমান্ড


13

আমি কেন আমার টার্মিনালে এই আদেশটি চালাতে পারি না:

open index.html

আমার ব্রাউজারে এই ফাইলটি খোলার কথা ছিল না? এছাড়াও পারছিনা যে আমি এসব কমান্ড প্রয়োগ করুন: open index.html -a "Sublime Text"। এই কমান্ডগুলির ফলাফল:

$ open index.html
Couldn't get a file descriptor referring to the console

$ open index.html -a "Sublime Text" - 
open: invalid option -- 'a' 
Usage: open [OPTIONS] -- command

2
আমি ধরে নিলাম আপনার বোঝানো xdg-openযা আপনার ব্রাউজারে ফাইলটি খোলার উচিত। openকমান্ড একটি লিঙ্ক openvtকমান্ড এবং একটি নতুন ভার্চুয়াল কনসোলে একটি বাইনারি প্রর্দশিত হবে। আপনি সম্ভবত যা চান তা তা নয় not
মার্কো

1
ধরে নিচ্ছেন আপনি কোনও ওএসএক্স সিস্টেমে আছেন? আমি বিশ্বাস করি না openলিনাক্সের কোনও আদেশ আছে ।
slm

1
@ এসএলএম, যেমন মার্কো উল্লেখ করেছেন, openলিনাক্সে একটি কমান্ড রয়েছে যার সাথে লিঙ্ক রয়েছে openvt; প্রশ্নে ত্রুটি বার্তাগুলি সেই পরিস্থিতির সাথে সামঞ্জস্যপূর্ণ।
স্টিফেন কিট

এক্সডিজি-ওপেন ফাইলের নাম_ও_ URL
ইজাজ আহমেদ খান

1
@ অ্যাডগারঅলিভিরা আপনি যদি কোনও প্রোগ্রাম (একটি বাইনারি) খুলতে চান তবে কেবল তার নামটি টার্মিনালে টাইপ করুন। আপনি যদি কোনও সম্পর্কিত প্রোগ্রামের সাথে কোনও ফাইল খুলতে চান তবে xdg-open <file>এটি ব্যবহার করুন এবং এটি সংশ্লিষ্ট প্রোগ্রামের সাথে ফাইলটি খুলতে হবে।
মার্কো

উত্তর:


19

ওএস এক্স-এর openকমান্ডের প্রাথমিক উদ্দেশ্যটি হ'ল যুক্ত অ্যাপ্লিকেশনটিতে একটি ফাইল খোলা। আধুনিক নন-ওএসএক্স ইউনিটগুলির সমতুল্য xdg-open

xdg-open index.html

xdg-openopen -aনির্দিষ্ট অ্যাপ্লিকেশনটিতে কোনও ফাইল খোলার জন্য OSX এর সমতুল্য নেই । এটি কারণ যে কোনও অ্যাপ্লিকেশনটিতে একটি ফাইল খোলার স্বাভাবিক উপায়টি হ'ল ফাইলটির নাম অনুসারে অ্যাপ্লিকেশনটির নামটি টাইপ করা। আরও স্পষ্টভাবে, আপনাকে এক্সিকিউটেবল প্রোগ্রামের নাম টাইপ করতে হবে যা অ্যাপ্লিকেশনটি কার্যকর করে।

sublime_text index.html

লিনাক্স, অন্যান্য ইউনিক্স সিস্টেমের মতো (তবে আমি জানি না, ওএস এক্স-এর অ-ইউনিক্সি অংশগুলি) একটি প্যাকেজ ম্যানেজারের সাহায্যে সফ্টওয়্যার পরিচালনা করে এবং পৃথক ফাইলগুলি যেখানে ব্যবহৃত হয় সেখানে রাখে । উদাহরণস্বরূপ, সমস্ত এক্সিকিউটেবল প্রোগ্রামগুলি ডিরেক্টরিগুলির একটি ছোট সেটে থাকে এবং সেই সমস্ত ডিরেক্টরিগুলি PATHভেরিয়েবলের তালিকাভুক্ত হয় ; চলমান তালিকাভুক্ত ডিরেক্টরিতে sublime_textবলা একটি ফাইল দেখায় । একক ডিরেক্টরি ট্রিতে প্যাকযুক্ত থাকা এবং অ্যাপ্লিকেশন ডাটাবেসে নিবন্ধভুক্ত অ্যাপ্লিকেশনগুলি পরিচালনা করার জন্য ওএস এক্সের অতিরিক্ত স্তরের ইন্ডিয়ারেশন প্রয়োজন। লিনাক্সের কোনও অ্যাপ্লিকেশন ডাটাবেস নেই, তবে এটি এমনভাবে সংগঠিত হয়েছে যাতে এটির প্রয়োজন হয় না।sublime_textPATHopen -a

যদি কমান্ড sublime_textশেলটি চালানো আপনার পক্ষে কাজ করে না, তবে সাব্লাইম পাঠ্য সঠিকভাবে ইনস্টল করা হয়নি। আমি এটি কখনও ব্যবহার করি নি, এবং দৃশ্যত এটি একটি ট্যর সংরক্ষণাগার হিসাবে আসে, বিতরণ প্যাকেজ হিসাবে নয় (যেমন দেব বা আরপিএম), সুতরাং আপনার অতিরিক্ত ইনস্টলেশন ধাপটি করা দরকার এটি সম্ভব। এটিকে স্বয়ংক্রিয়ভাবে তৈরি করা সত্যিই সাব্লাইম টেক্সট প্রস্তুতকারকদের কাজ, তবে তারা যদি এটি না করে থাকে তবে সম্ভবত আপনি কমান্ডটি চালিয়ে নিজেই করতে পারেন

sudo -s …/sublime_text /usr/local/bin

নির্বাহী অবশ্যই সেই পথ দিয়ে প্রতিস্থাপন করুন sublime_text

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


তবে যদি আমি এই কমান্ডটি চালিত করি "sublime_text dependxt.html" আমি এই ফলাফলটি পেয়েছি "sublime_text: কমান্ড পাওয়া যায় নি" কীভাবে আমি এই সমস্যার ফল দিতে পারি?
এডগার অলিভিরা

@ অ্যাডগার অলিভেরা আমার মনে হয় আমি সমস্যাটি দেখতে পাচ্ছি, স্পষ্টতই সাব্লাইম টেক্সট কোনও সঠিক প্যাকেজ নিয়ে আসে না? আমার সম্পাদনা দেখুন।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

আমি এর জন্য একটি উপাস তৈরি করেছি: ওরফে সাবলিমেটেক্সট = '/ অপ্ট / সাব্লাইম_টেক্সট / সাব্লাইম_ টেক্সট / হোম / ইউজার / ডকুমেন্টস / স্যান্ডবক্স / ওয়েবডিভোপার' তবে আমি যখন "সাব্লাইমেক্সটেক্সট" কার্যকর করি তখন দুটি উইন্ডো খোলে, তার পরিবর্তে কেবল একটি! কেন? ধন্যবাদ
এডগার অলিভিরা

আমি যখন ফাইলটি পরিবর্তন করেছি। বাশার্কে আমার সন্দেহ আছে "একই টার্মিনালে আমি যে পরিবর্তনগুলি করেছি সেখানে একটি নতুন ওরফে এক্সিকিউট করতে ফাইলটি .bashrc কীভাবে পুনরায় সেট করবেন?" এটি ইউনিক্স এবং লিনাক্সে গুগল পেয়েছে এবং উত্তরটি খুঁজে পেয়েছে, এবং কেবলমাত্র আপনার কাছে "বাশ" কমান্ড কার্যকর হয়েছে এবং আপনি আপনার নতুন উপনামটি চালাবেন :)
এডগার অলিভিরা

7

আপনি যে অপারেটিং সিস্টেমটি ব্যবহার করছেন তা উল্লেখ করেন না।

কিছু লিনাক্স ডিস্ট্রিবিউশনে openকমান্ডটি কমান্ডের প্রতীকী লিঙ্ক openvtযা একটি নতুন ভার্চুয়াল কনসোলে বাইনারি খোলে। আপনি সম্ভবত যা চান তা তা নয় not আপনার ত্রুটি বার্তাগুলি প্রকৃতপক্ষে ইঙ্গিত দেয় যে আপনি openvtআদেশটি প্রেরণ করেছেন। এই কমান্ডটি আর্গুমেন্ট হিসাবে একটি প্রোগ্রাম বাইনারি (একটি নির্বাহযোগ্য) প্রত্যাশা করে।

আমি ধরে নিলাম আপনার অর্থটি xdg-openযা এর বিপরীতে openvt, একটি এক্সিকিউটেবলকে আর্গুমেন্ট হিসাবে প্রত্যাশা করে না তবে একটি ফাইল যা একটি প্রোগ্রামের সাথে যুক্ত এবং প্রোগ্রামটির সাথে ফাইলটি খোলে। আপনি যুক্তি হিসাবে ফাইল এবং URL গুলি পাস করতে পারেন।

সুতরাং xdg-open index.htmlআপনার ব্রাউজারে xdg-open image.pngফাইলটি খুলতে হবে, আপনার চিত্র দর্শকের মধ্যে ফাইলটি খুলতে হবে, ইত্যাদি etc.


1
একমাত্র সমস্যা xdg- ওপেন ফাইল টাইপের জন্য ডিফল্ট অ্যাপ্লিকেশনটিতে ফাইলটি খুলবে। আপনি এক্সডিজি-ওপেন সহ অ্যাপ্লিকেশনটি চয়ন করতে পারবেন না। অ্যাপটি বেছে নেওয়ার জন্য কোনও আদেশ আছে কিনা তা আমি জানি না, তবে আপনি যদি অ্যাপটি জানেন (উদাহরণস্বরূপ "সাব্লাইম টেক্সট" এর মতো) তবে প্রোগ্রামটি সরাসরি চালু করা ভাল।
এক্স

1
@ X3MBoy পিছনে ধারণা xdg-openকল ডাকা হয় ডিফল্ট যে ফাইলের জন্য আবেদন। আপনি যদি কোনও ভিন্ন প্রোগ্রাম ব্যবহার করতে চান তবে কেবল কল করুন <program> <file>। আমি সমস্যা দেখতে ব্যর্থ।
মার্কো

তিনি কিছু কমান্ডের কাছে অনুরোধ করতে বলেছেন: open index.html -a "Sublime Text" -সে কারণেই আমি "সমস্যা" বলি, কারণ আপনি যদি xdg-openএইচটিএমএল ফাইল খুলতে ব্যবহার করেন তবে এমন আরও ভাল সম্ভাবনা রয়েছে যে "
সাব্লাইম

3

যদিও লোকেরা প্রায়শই xdg-openএর কার্যকারিতা অনুকরণকারী হিসাবে নাম রাখে open, ম্যাকোস openকিছুটা আলাদা কারণ কারণ এটি 1. স্টাডাউট / স্টের্ডার এবং 2 থেকে কোনও কিছুই পুনর্নির্দেশ করে না 2 আপনি টার্মিনাল থেকে যা যা করতে চান তা বিচ্ছিন্ন করে (জিইআইআই চালু করার সময় আপনি যা চান তা প্রায় সবসময়ই থাকে) অ্যাপ্লিকেশনগুলি যাতে আপনার চারপাশে টার্মিনালগুলি না থাকে)

এটি সমাধানের জন্য, আমি কিছু মানক GNU সরঞ্জাম ব্যবহার করে যথাযথ সমতুল্য নিয়ে এসেছি (সিনট্যাক্সটি হ'ল ফিশ শেল, তবে বাশে রূপান্তর তুচ্ছ):

function open
    for i in $argv
        setsid nohup xdg-open $i > /dev/null 2> /dev/null
    end
end

যুক্ত :

ব্যাশ শেল ব্যবহারকারীদের জন্য, এখানে ফাংশনটি দেওয়া হয়েছে:

open ()
{
    for i in $*
    do
        setsid nohup xdg-open $i > /dev/null 2> /dev/null
    done
}

2

আমার সমাধান (একটি দৈনিক ভিত্তিতে ব্যবহৃত হয়) এর জন্য ব্যবহার aliasকরা xdg-open

শুধু এটি আপনার রাখুন ~/.bashrc:

alias open='xdg-open '

তারপরে আপনার শেলটি বন্ধ করুন এবং পুনরায় চালু করুন source ~/.bashrc

এখন আপনি এই কমান্ড দিয়ে কোনও ফাইল খুলতে পারবেন ... .png থেকে .jpg থেকে .docx থেকে .pdf থেকে .txt।

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