উইন্ডোজ কনসোলে থাকা ">" কমান্ডটি সমস্ত বার্তাকে কোনও ফাইলে পুনঃনির্দেশ করে না কেন?


21

আমি এসবিটি দিয়ে স্কাল প্রকল্প তৈরির চেষ্টা করছি , তাই আমি একটি কমান্ড চালাচ্ছি:

sbt clean test > log.log

যার অর্থ যে sbt সরঞ্জাম উইন্ডোজ কনসোলে যে কোনও বার্তা লিখবে তা "লগ.লগ" ফাইলটিতে লেখা উচিত। তবে কখনও কখনও আমি কনসোলে স্ট্যাকট্রেস লিখিত পাই এবং ফাইলটিতে না:

C:\path>sbt clean test > log.log
java.lang.ExceptionInInitializerError
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
        at scala.concurrent.impl.ExecutionContextImpl$AdaptedForkJoinTask.exec(ExecutionContextImpl.scala:121)
        at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.ClassCastException: Class org.infinispan.configuration.parsing.Parser60 does not implement org.infinispan.configuration.parsing.ConfigurationParser

">" কমান্ড সমস্ত বার্তাকে কোনও ফাইলে পুনঃনির্দেশ করে না কেন?

উত্তর:


35

আপনি যা আটকালেন তা হ'ল কমান্ড স্ট্যান্ডার্ড আউটপুট (STDOUT) নয়, তবে কমান্ডের ত্রুটি আউটপুট (STDERR)।

আপনি যখন কমান্ডে "> আউটপুট_ফাইলে" যুক্ত করবেন, আপনি কেবল সেই ফাইলটিতে STDOUT পুনর্নির্দেশ করছেন, STDERR নয়।

আপনি যদি আউটপুট ত্রুটিগুলি করতে চান, একই ফাইলটিকে স্ট্যান্ডার্ড আউটপুট হিসাবে ব্যবহার করতে হবে

sbt clean test > log.log 2>&1

"2> & 1" কী করে, এটি আউটপুট ত্রুটিটিকে স্ট্যান্ডার্ড আউটপুট ফলাফলের মতো একই জায়গায় বলে।

আপনি এর মতো কিছু করতে পারেন:

sbt clean test > log.log 2>error.log

এটি লগ.লগে STDOUT, এবং এসটিডিআরআরকে দ্বিতীয় ফাইল হিসাবে ত্রুটি.লগ বলে আউটপুট দেবে, যদি আপনি তাদের আলাদা করতে চান।

কমান্ড পুনর্নির্দেশকারী অপারেটরদের সম্পর্কে এটি দেখুন

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/redirection.mspx?mfr=true


3
2>&1আপনার উত্তর এবং 1<&2লিঙ্ক থেকে পার্থক্য কি ? আমি এটি সর্বদা আপনার পথে দেখেছি এবং অন্যভাবে এটিও উপলব্ধি করে (কেবল "আউটপুট" পরিবর্তে "ইনপুট" পুনর্নির্দেশ করা হবে তবে অন্যথায় এটি একইভাবে প্রদর্শিত হবে) তবে দ্বিতীয় পছন্দটি দেখতে আকর্ষণীয়।
জো

6
শব্দার্থবিজ্ঞান ... 2>&1বলছে যে এসটিডিআরআর থেকে আউটপুটটি এসটিডিআউট হিসাবে একই আউটপুটে পুনঃনির্দেশ করা উচিত। 1<&2বলছে যে STDERR থেকে আউটপুটটি STDOUT এ একটি ইনপুট হিসাবে ব্যবহার করা উচিত। উভয়ই একই ফলাফল উত্পন্ন করে এবং কেবল পছন্দের বিষয়
সানসি

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