শেল কমান্ডে ">" এবং ">>" এর মধ্যে পার্থক্য কী?


45

কেউ আমাকে শেল কমান্ড ব্যবহার করার সময় >এবং এর মধ্যে পার্থক্য ব্যাখ্যা করতে পারে >>?

উদাহরণ:

ps -aux > log
ps -aux >> log

মনে হচ্ছে ফলাফলটি উভয় দিক থেকেই একই।


2
ব্যাশ অপারেটরগুলির কয়েকটি সম্পর্কে অতিরিক্ত তথ্যের জন্য <<, <<< এবং <<বাশের মধ্যে পার্থক্য কী রয়েছে
সের্গেই কোলোডিয়াজনি

উত্তর:


48

>একটি ফাইল ওভাররাইট করতে (" ক্লোবার ") >>ব্যবহার করা হয় এবং কোনও ফাইলে সংযোজন করতে ব্যবহৃত হয়।

সুতরাং, আপনি যখন ব্যবহার করবেন তখন ps aux > fileএর আউটপুটটি ps auxলিখিত হবে fileএবং যদি নামের একটি ফাইল fileইতিমধ্যে উপস্থিত থাকে তবে এর সামগ্রীগুলি ওভাররাইট করা হবে।

এবং যদি আপনি ব্যবহার করেন ps aux >> fileতবে এর আউটপুটটি ps auxলিখিত হবে fileএবং যদি নামযুক্ত ফাইলটি fileইতিমধ্যে উপস্থিত ছিল তবে ফাইলটিতে এখন তার পূর্ববর্তী বিষয়বস্তু এবং ps auxএর পুরানো বিষয়বস্তুর পরে লেখা লিখিত সামগ্রী থাকবে file


11

আপনি যদি টার্মিনাল লিখেন

ps aux > log

এটি ps auxনামের ফাইলটিতে লগ ইন করার আউটপুট রাখবে ।

যদি আপনি রাখেন

ps aux >> log

তারপরে পরবর্তী আউটপুটটি প্রথমের নীচে যুক্ত হবে। যদি আপনি কেবল একটি রাখেন তবে >এটি পূর্ববর্তী ফাইলটি ওভাররাইট করে।


4

হ্যাঁ, >>সংযোজন, >সর্বদা পূর্বের বিষয়বস্তুগুলিকে ওভাররাইট / ধ্বংস করে।

ps -aux > log

এটার মতই

rm log 2>/dev/null
ps -aux >> log

Wintel এটা জন্য একই .bat, .cmdএবং .ps1স্ক্রিপ্ট অত্যধিক; সাধারণ heritageতিহ্য, সাধারণ জ্ঞান।


3

সর্বাধিক গুরুত্বপূর্ণ পার্থক্য হ'ল >শেলটি একটি ফাইল বা ফাইল-জাতীয় বস্তু O_WRONLY|O_CREAT|O_TRUNCপতাকা সহ খোলার করে তোলে - ফাইলটি উপস্থিত থাকলে তা তৈরি করা হবে বা ছাঁটাই করা হবে, যখন পতাকাগুলির >>সাথে ফাইল খোলে O_WRONLY|O_CREAT|O_APPEND- ফাইলটি উপস্থিত থাকলে তা তৈরি করা বা সংযোজন করা হবে। এটি স্পষ্ট হয় যদি আপনি সিস্টেম কলগুলি সনাক্ত করেন তবে উদাহরণস্বরূপ

$ strace -e open,dup2 bash -c 'true >> /dev/null'
...
open("/dev/null", O_WRONLY|O_CREAT|O_APPEND, 0666) = 3
dup2(3, 1)                              = 1
dup2(10, 1)                             = 1

এবং সাথে

$ strace -e open,dup2 bash -c 'true > /dev/null'
...
open("/dev/null", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
dup2(3, 1)                              = 1
dup2(10, 1)                             = 1
+++ exited with 0 +++

লক্ষ্য করুন যে উভয় ক্ষেত্রেই খোলা ফাইলের ফাইল ডেস্ক্রিপ্টর কমান্ডের ফাইল ডেস্ক্রিপ্টর 1 (স্টডআউট) এ নকল হয় এবং শেল কাঁটাচামচ দিয়ে যে কোনও আদেশেই উত্তরাধিকার সূত্রে প্রাপ্ত হয়।

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