স্পর্শ এবং vi ব্যবহার?


55

সম্পাদনার আগে স্পর্শ সহ একটি ফাইল তৈরি করার কোনও সুবিধা আছে কি .. যেমন:

touch foo
vi foo

বনাম এটি সরাসরি-সরাসরি সম্পাদক পেতে? ভালো লেগেছে:

vi foo

আমি পূর্বের ( touchতখন vi) ব্যবহার করে বেশ কয়েকটি টিউটোরিয়াল দেখতে পাচ্ছি ।

উত্তর:


111

touchপ্রথমে ফাইলটি ইনগান করে নিশ্চিত করে যে কেবলমাত্র ফাইল সিস্টেমটি কেবল পঠনযোগ্য বা অন্য কোনও সমস্যা রয়েছে তা খুঁজে বার করার জন্য কেবল সম্পাদকের মধ্যে সময় নষ্ট করার পরিবর্তে আপনার কাছে ফাইলটি তৈরির ক্ষমতা রয়েছে have


6
এবং সম্পাদনার আগে touchআপনাকে chmod +xপরে কাজ করার অনুমতি দেয় যা আপনি #!/bin/bashশেল স্ক্রিপ্ট লিখতে থাকলে তা বোঝা যাবে ।
অ্যারন ম্যাকডেইড

11
বিকল্পভাবে, আপনি যদিও :wশুরু করার পরে প্রথম কাজটি করতে পারেন vi। (এবং :chmod +x %যদি আপনি এটি কার্যকর করতে চান)
স্টাফেন চ্যাজেলাস

26
touchব্যর্থ হতে পারে যেখানে viএর :w!যদিও সফল হবে (উদাহরণস্বরূপ যদি fileবিদ্যমান কিন্তু আপনি তার মালিকের নও এবং এটি লেখার অ্যাক্সেস না থাকে, যখন আপনি বর্তমান ডিরেক্টরির লেখার অ্যাক্সেস আছে)। বিপরীতভাবে, touchসফল হতে পারে কিন্তু viএর :wবা :w!ব্যর্থ হতে পারে যদি আপনি ফাইলের মালিক, কিন্তু এটি লেখার অ্যাক্সেস না থাকে কিংবা বর্তমান ডিরেক্টরির (আপনার সাথে এটি প্রায় কাজ করতে সক্ষম হতে চাই :!chmod +w %(কিছু viমত বাস্তবায়নের vimকি করতে পারেন যে স্বয়ংক্রিয়ভাবে :w!))।
স্টাফেন চেজেলাস

এখন অনেক জ্ঞান তৈরি করে!
ফওিক্স

4
তেজ / সুস্পষ্টভাবে রাষ্ট্র vi যদি আপনি যে তোমাদের কাছে লেখার অনুমতি আপনার নেই একটি ফাইল খুলতে: "foo" [readonly]। এবং আবার সন্নিবেশ মোডে প্রবেশ করার সময়:Warning: Changing a readonly file.
দেবসোলার

25

প্রদত্ত উত্তরগুলি ছাড়াও স্পর্শের একটি সুবিধা হ'ল আপনি যে স্পর্শ করার সময় অন্য কোনও ব্যবহারকারী / টার্মিনাল একই ফাইল সম্পাদনা করছেন তারা যখন কোনও পরিবর্তন সংরক্ষণ করার চেষ্টা করবেন তখন তারা একটি সতর্কতা পাবেন।

WARNING: The file has been changed since reading it!!!
Do you really want to write to it (y/n)?

আপনি সে প্রতি কোনও পরিবর্তন করেন নি এবং কেবল ফাইলটিকে স্পর্শ করেছেন যদিও এটি তাদের সতর্ক করবে them


ভাল পয়েন্ট, সুতরাং লোকেরা একই ফাইলটি ব্যবহার করছে / সম্পাদনা করছে এবং একই সাথে তাদের সতর্ক করে দিচ্ছে এটি আবিষ্কার করার একটি ভাল উপায়। বহু-ভাড়াটে পরিবেশে আমি এর সুস্পষ্ট সুবিধা দেখতে পাচ্ছি!
ফওিক্স

@ ফওিক্স এর পরে আপনার এই উত্তরটি আপডেট করা উচিত Aswell
কিউই

19

গৃহীত উত্তর ছাড়াও:

এটি লক্ষ্যণীয় যে touchফাইল টাইমস্ট্যাম্পগুলি আপডেট করতে ব্যবহৃত হয়। আপনি যদি touchবিদ্যমান কোন ফাইল ব্যবহার করেন তবে এটি ফাইলের টাইমস্ট্যাম্পটিকে বর্তমান তারিখ এবং সময় আপডেট করবে। যদি ফাইলটি বিদ্যমান না থাকে তবে এটি বর্তমান তারিখ এবং সময়কে টাইমস্ট্যাম্প হিসাবে খালি ফাইল তৈরি করে।

viঅন্যদিকে, আপনি যদি এটি না লিখে থাকেন তবে কোনও নতুন ফাইল তৈরি করে না।

উদাহরণস্বরূপ, যদি আমি টাইপ করি vi test.txt, কিছু নোট টাইপ করি , তবে টাইপ করি :q!; test.txtঅস্তিত্ব থাকবে না।


গৃহীত উত্তরে বর্ণিত সুবিধা সম্পর্কে কী?
জেবেেন্টলি

8

আপনি touchযতক্ষণ না viএটি লিখতে বলছেন ততক্ষণ কোনও নতুন ফাইল উপস্থিত থাকবে না।

একাধিক ব্যবহারকারী সিস্টেম বিবেচনা করুন (সম্ভবত আপনি একটি নেটওয়ার্ক-মাউন্ট করা ফাইলসিস্টেম যা অনেকগুলি ব্যবহারকারীর সাথে অনেকগুলি সিস্টেমে ভাগ করেছেন)। দৌড়ানো touchআপনার কাছে ফাইলটি (এবং আপনি এটিতে লিখতেও পারেন) এমনকি টাইমস্ট্যাম্পটি আপডেট করে তা নিশ্চিত করবে। এই জাতীয় ফাইল তৈরি করতে চাইছেন এমন আরেকজন ব্যবহারকারী দেখতে পাবে যে এটি আপনার নিজের। যদি এটি ইতিমধ্যে বিদ্যমান থাকে এবং অন্য কোনও ব্যবহারকারী এটি মুছতে বা প্রতিস্থাপন করতে চায় তবে তারা দেখতে পাবে যে এটি সম্প্রতি সংশোধিত হয়েছে এবং সম্ভবত দুবার ভাবেন।


4

touchপ্রথমে ইনগ করার কোনও সুবিধা নেই ; viএটি উপস্থিত না থাকলে ফাইল তৈরি করবে।

গৃহীত উত্তরটি বলে যে এটি সম্পাদকের সময় নষ্ট করার আগে আপনি সেখানে লিখতে পারেন কিনা তা যাচাই করে। সত্য, তবে এখন আপনি touchপ্রতিবার টাইপ করার সময় নষ্ট করবেন । কোথাও লিখতে না পারা এটি প্রায়শই কাজ করবে তার তুলনায় মোটামুটি ব্যতিক্রমী (যতক্ষণ আপনি sudoনিজের হোম ডিরেক্টরি থেকে বাইরের ফাইলগুলির জন্য মনে রাখবেন /tmpবা root হিসাবে লগ ইন করেছেন)।

কেবল সম্পাদকটি খুলুন এবং আপনি যা চান তা করুন, তারপরে ফাইলটি সংরক্ষণ করার চেষ্টা করুন। যদি এটি কাজ না করে, এমনকি :w!এটি অন্য কোথাও সংরক্ষণ করে ( :w ~/asdf) এবং সমস্যার সমাধান করে। একবার এটি সংশোধন করা যাচ্ছে তুমি কি আসল অস্থায়ী ফাইল থেকে ফাইল বিষয়বস্তু কপি করতে পারেন: cat ~/asdf > /mnt/example.txt && rm ~/asdf। আমরা এর catপরিবর্তে mvবা ব্যবহার করার কারণটি cpহ'ল গন্তব্যের অনুমতি এবং অন্যান্য বৈশিষ্ট্যগুলি ব্যবহার করা।

তদতিরিক্ত, আরও কিছু উন্নত কমান্ড লাইন ব্যবহারের জন্য, আপনি সমস্যাটি সমাধান করার সময় আপনি + এর viসাথে ব্যাকগ্রাউন্ড করতে পারেন (বা ব্যবহার করুন , বা ), এবং শেষ পর্যন্ত এটি আবার রাইট কমান্ডটি চালানোর জন্য।CtrlZ:suspend:susfg

সম্পাদনা: / ইউ / জি-ম্যানের মন্তব্যের প্রতিক্রিয়ায় পোস্টটি উন্নত হয়েছে । ধন্যবাদ!


3
কিছু নিরাপত্তা বিষয়ক এখানে আছেন: (1) ফাইল যদি /mnt/example.txtবিশ্ব পাঠযোগ্য হতে অনুমিত হয় না, কিন্তু আপনার umask কিছু 22 মত প্রশ্রয়ের সেট করা হয়, তারপর /tmp/asdf হবে বিশ্ব পাঠযোগ্য হবে। সিস্টেমে অন্য ব্যক্তিরা থাকলে তারা ফাইলটির অস্থায়ী অনুলিপিটি পড়তে পারবেন। (২) ফাইলটি /mnt/example.txtসম্ভবত বিশ্ব লিখনযোগ্য হিসাবে বিবেচিত হবে না তবে সিস্টেমে দূষিত লোকেরা থাকলে তারা ফাইলের অস্থায়ী অনুলিপিটি পড়তে এবং আপনার স্থানান্তর / অনুলিপি করার আগে পরিবর্তিত সংস্করণে এটি প্রতিস্থাপন করতে সক্ষম হতে পারে এটা সঠিক জায়গায় ফিরে।   … (চালিয়ে যাওয়া)
জি-ম্যান

3
(চালিয়ে যাওয়া) ... (স্টিকি বিট সেট করা /tmpএটিকে আটকাতে পারে)) (3) কমান্ডটি mv /tmp/asdf /mnt/example.txtসম্পূর্ণরূপে বর্তমানটিকে ধ্বংস করে দেবে /mnt/example.txtএবং এর সাথে প্রতিস্থাপন করবে /tmp/asdf। আপনি প্রতিস্থাপন করতে চান বিষয়বস্তু এর /mnt/example.txtসঙ্গে কন্টেন্ট এর /tmp/asdf। ব্যবহার করে mvআপনি /mnt/example.txtএকই বৈশিষ্ট্যগুলি সেট আপ করেছেন /tmp/asdf- সম্ভবত আপনার নিজের এবং বিশ্ব পাঠযোগ্য- এটি ভাল cp /tmp/asdf /mnt/example.txtবা এমনকি ভাল হতে পারে cat /tmp/asdf > /mnt/example.txt। … পিএস (4) আপনি viটাইপ করে স্থগিত করতে পারেন :suspend(বা :susসংক্ষেপে)।
জি ম্যান

@ জি-ম্যান এগুলি কয়েকটি ভাল বিষয়। আমি 5 মিনিটের সময় কেউ ফাইল চুরি করে বিশেষত ভয় পাই না /tmp, তবে ~/পরিবর্তে লেখার জন্য কোনও অজুহাত নেই । আমি এটি ভাবিনি যে এটি গুণাবলী প্রতিস্থাপন করবে। আমি আমার পোস্টটি সম্পাদনা করব, ধন্যবাদ :)
লুচ

3

কোনও লাভ নেই। viউপস্থিত না থাকলে একটি ফাইল তৈরি করবে will


1

vi এটি ভিজ্যুয়াল টেক্সট এডিটর (vi = ভিজ্যুয়াল) এটি যাইহোক "এড" এর সাথে তুলনা করে ভিজ্যুয়াল, যা আপনাকে একবারে পাঠ্যর একটি লাইন দেখতে এবং পরিবর্তন করতে দেয়।

touchকমান্ড একটি বিদ্যমান ফাইল-এ টাইমস্ট্যাম্প আপডেট, অথবা যদি ফাইল আগে থেকেই উপস্থিত করেনি একটি নতুন ফাইল তৈরি করে। টাইমস্ট্যাম্পগুলির উপর নির্ভরশীল এমন জিনিসগুলির পরীক্ষা করা এটি ভাল।

এখন আপনার ফাইলটি যদি কোনও পাঠ্য ফাইল হয় বা এখনও উপস্থিত না থাকে, vi এর মাধ্যমে এটি খোলার পরে vi কে কমান্ড জারি করার :wqফলে সেই ফাইলটি স্পর্শ করার মতোই ফলাফল হতে পারে। দু'টি কমান্ড একরকম হওয়ার একমাত্র উপায়।


1

বিশেষত এর সাথে ব্যবহারের জন্য vi, ফাইল সম্পাদনা করার আগে ফাইলটি তৈরি করার দরকার নেই: viএকটি নতুন ফাইল তৈরি এবং সংরক্ষণ করতে ব্যবহার করা যেতে পারে। যাইহোক, এমন কলিং কনটেক্সট রয়েছে যেখানে ফাইলটি থাকা দরকার। উদাহরণস্বরূপ, আমার সিস্টেমে (ওএস এক্স) আমি একটি উপযুক্ত জিইউআই সম্পাদক চালু করতে পারি (ফাইলের ধরণের দ্বারা নির্ধারিত):

open foo.txt

এটি foo.txtটেক্সটএডিট বা ইমাসে খোলা হবে বা পাঠ্য ফাইলগুলির জন্য আমার পছন্দ হিসাবে আমার সম্পাদক হিসাবে যা কিছু নির্দিষ্ট করা হয়েছে, এবং প্রক্রিয়াটি আলাদা করে রাখব যাতে আমি তত্ক্ষণাত আমার প্রম্পটটি ফিরে পাই। ( open bar.pyএটি আইডিএল, পাইথন সম্পাদক ইত্যাদি খোলার মধ্যে রয়েছে) বা আমি স্পষ্টতই ইম্যাকের জন্য অনুরোধ করতে পারি:

open -a emacs foo.txt

তবে openফাইলটি ইতিমধ্যে বিদ্যমান থাকা প্রয়োজন, অন্যথায় এটি একটি ত্রুটি উত্থাপন করে। সুতরাং আমাকে emacsনীচের শেল ফাংশন হিসাবে সংজ্ঞায়িত করতে হয়েছিল, যা আমাকে জিওআইআই emacs fooচালু করতে লিখতে অনুমতি দেয় emacsএমনকি যদি fooনা থাকে তবে।

function emacs () 
{ 
    if [ -n "$1" -a ! -e "$1" ]; then
        /usr/bin/touch "$1";
    fi;
    open -a emacs "$@"
}

0

vi ব্যবহারকারী হিসাবে কোনও ফাইল সম্পাদনা করতে ব্যবহৃত হয়, যখন স্পর্শ এতে টাইমস্ট্যাম্প সেট করতে পারে এবং বেশিরভাগ স্ক্রিপ্ট এবং এ জাতীয় ক্ষেত্রে ব্যবহৃত হয়।

ফাইল তৈরির আর একটি উপায় হ'ল:

>newfile.txt

1
এটি অবিশ্বস্ত কারণ এটি পসিক্স স্পকে নির্দিষ্ট (আফাইক) নয়। উদাহরণস্বরূপ, ইন zsh, এটি অভিন্ন cat >newfile.txtএবং আপনার Ctrl + D টিপতে হবে।
অ্যাডাম কাটজ

@ অ্যাডামক্যাটজ ভালো পয়েন্ট; আমি উত্তর আপডেট করেছি, পরামর্শের জন্য ধন্যবাদ।
জেমস ইয়ংম্যান

0

ম্যান স্পর্শে তার প্রাথমিক কাজ হ'ল ফাইল টাইমস্ট্যাম্পগুলি পরিবর্তন করা।
ওএফসি বর্তমান টাইমস্ট্যাম্প সহ ফাইলটি তৈরি করছে এবং তারপরে আপনি ফাইলটি সম্পাদনা করতে পারবেন।

ষষ্ঠ হ'ল পাঠ্য সম্পাদক যা এটি পাঠ্য সম্পাদনা ওপেন, সেভ, ফাইল সম্পাদনা ইত্যাদি যা করেন তা

সবই ব্যবহারকারীর এবং হ্যাবিটের স্বাদ: স্পর্শ করে vi বা vi ফাইল.txt একই জিনিস আলাদা রঙ।


0

touch কমান্ড বর্তমান টাইম স্ট্যাম্প সহ একটি ফাইলের তারিখ এবং সময় পরিবর্তন করে।
যদি ফাইলটি না থাকে তবে তা তারিখ এবং সময় সহ নতুন ফাইল তৈরি করে।

vi সম্পাদক ফাইলটি সম্পাদনা করতে ব্যবহৃত হয় যদি ফাইলের অস্তিত্ব না থাকে তবে এটি ফাইল সংরক্ষণ না করে এটি নতুন ফাইল তৈরি করে।

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