আমি শটওয়েল থেকে একটি ফোল্ডারে সমস্ত .cr2 ফাইল এবং তার সমস্ত সাবফোল্ডার খুলতে চাই, আমি কোন কমান্ড লাইন ব্যবহার করব?


9

কিছুটা এইরকম

shotwell *.cr2 ./

এটি কাজ করে না, তবে মূলত আমি সমস্ত ডিরেক্টরি খুলতে শটওয়েল ব্যবহার করতে চাই .cr2যা বর্তমান ডিরেক্টরিতে (সাবফোল্ডার সহ) শেষ হয়

প্রসঙ্গটি হ'ল আমি আমার ক্যামেরায় তোলা ছবিগুলি হারিয়ে যাচ্ছি যা থেকে আমি আমার মেমোরি কার্ডটি মুছে ফেলেছি।

শটওয়েলের "অনুপস্থিত চিত্র" এ তাদের জন্য থাম্বনেইল রয়েছে তবে আমি সেগুলি খুঁজে পাচ্ছি না। সুতরাং আমি অনুভব করেছি যে আমি photorecতাদের চেষ্টা করার জন্য ছুটে যাব । ফলস্বরূপ ফোটোরেক আমাকে একটি নৌকো ফোল্ডার এবং ফাইলগুলি দিয়েছিলেন, এটি যথেষ্ট পরিমাণে আমার হার্ডড্রাইভকে পূর্ণ করেছে। একে একে সমস্ত ফাইল চালিয়ে যাওয়ার পরিবর্তে, আমি আমার হার্ড ড্রাইভে .cr2 ফাইলগুলি সন্ধান করার সিদ্ধান্ত নিয়েছিলাম, যখন একটি নির্দিষ্ট ফোল্ডারটি এড়িয়ে গিয়েছিলাম Photogsযে আমি জানি যে সেগুলি নেই কারণ সেগুলি photorecডেটা ডাম্পের অংশ ছিল না ।


@EliahKagan মন্তব্য (যা চ্যাটে অব্যাহত!) বিবরণের জন্য দেখুন এখানে । আমি কীভাবে এবং কীভাবে প্রশ্নটি সম্পাদন করব তা নিশ্চিত নই, তাই দয়া করে পরামর্শ দিন, আপনি এমন একটি সুন্দর উত্তর তৈরি করেছেন
জান্না

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

উত্তর:


6

সাধারণত, আপনি কেবল শটওয়েল খুলতে এবং ফোল্ডারে টেনে আনতে চাইবেন।

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

শটওয়েল কেবল আপনার আগ্রহী চিত্রগুলি সম্পর্কেই জানে তা নিশ্চিত করার জন্য, আপনি ডিরেক্টরি ট্রি অন্য কোথাও ক্লোন করতে পারতেন, কেবল .cr2সেগুলিতে থাকা ফাইল এবং ফোল্ডারগুলি অনুলিপি করতে পারেন, তবে অন্য কিছুই নয়। যদিও এটি যথেষ্ট পরিমাণ অতিরিক্ত জায়গা নিতে পারে। সুতরাং অন্য পদ্ধতির প্রতীকী লিঙ্কগুলির একটি শ্রেণিবিন্যাস তৈরি করা - যেখানে আপনার মূল ফাইলগুলির অনুলিপিগুলির একটি নতুন ডিরেক্টরি ট্রি থাকার পরিবর্তে আপনার .cr2কাছে সেমিনকের একটি নতুন ডিরেক্টরি ট্রি রয়েছে । এটি অনেক কম জায়গা নেয়।

এই উত্তরটি those সমস্ত পদ্ধতির অন্তর্ভুক্ত করে।

শটওয়েলে চিত্রগুলির একটি ফোল্ডার খোলা হচ্ছে (সাবফোল্ডার সহ)

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

ওয়ে 1: কেবল শটওয়েলে পুরো ফোল্ডারটি খুলুন।

শটওয়েলে, ফাইল মেনুতে, ফোল্ডার থেকে আমদানি ক্লিক করুন । তারপরে আপনি যে ফোল্ডার থেকে চিত্রগুলি আমদানি করতে চান তা নির্বাচন করুন। এটি কেবলমাত্র .cr2ফাইলগুলিতে সীমাবদ্ধ থাকবে না , তবে আপনি যদি .cr2ডিজিটাল ক্যামেরা থেকে নির্মিত চিত্রগুলি সহ একাধিক সাবফোল্ডার থেকে ফাইলগুলি খোলেন , তবে সম্ভবত এটি কেবলমাত্র উপস্থিত ফাইলই হবে।

শটওয়েলের ফাইল মেনুতে ফোল্ডার মেনু আইটেমটি থেকে আমদানির স্ক্রিনশট।

আরও তথ্যের জন্য সমস্ত ছবি পুনরাবৃত্তভাবে দেখানোর জন্য যাকোবের উত্তর দেখুন (যে কোনও সাবফোল্ডার অন্তর্ভুক্ত করুন)

উপায় 2: ফটোগুলি শটওয়েলে টেনে আনুন।

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

আমার স্ক্রিনশটটি এতে থাকা চিত্রগুলি আমদানি করতে আমার ডেস্কটপ ফোল্ডারটি শটওয়েলে টেনে নিয়েছে।

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

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

শটওয়েলে ডায়ালগ বাক্সের স্ক্রিনশট যা ব্যবহারকারীকে তাদের শটওয়েল লাইব্রেরির অবস্থানে চিত্রগুলি অনুলিপি করতে বা কোনও অনুলিপি ছাড়াই স্থানটিতে আমদানি করার জন্য চয়ন করতে বলে।

অনুলিপি ছাড়া আমদানি করতে, ক্লিক করুন স্থানে আমদানি পরিবর্তে টি ফটো অনুলিপি করবেন


চিত্র ফাইলের নামের সাথে শটওয়েল চালু করা হচ্ছে

যদি কোনও কারণে যদি আপনি টার্মিনালে একটি কমান্ড চালিয়ে এটি করতে চান বা করতে চান তবে আপনি shotwellকমান্ডটি চালাতে পারেন এবং প্রতিটি চিত্রের ফাইলের নামটিকে এটি একটি আর্গুমেন্ট হিসাবে পাস করতে পারেন । গ্লোবস্টার এটি সহজ করে তোলে:

shopt -s globstar
shotwell **/*.cr2

.cr2এটি বর্তমান ডিরেক্টরিতে যে কোনও জায়গায় অবস্থিত ফাইলগুলি খুলবে । এটি শটওয়েল চালানো এবং তারপরে ফোল্ডারটিকে টেনে আনার থেকে পৃথক হয়, এতে শটওয়েল কেবলমাত্র আপনার নাম দেওয়া ফাইলগুলি আমদানি করার চেষ্টা করবে। তবে যেহেতু শটওয়েল প্রায়শই একই ফোল্ডারগুলি থেকে অন্য ইমেজ ফাইলগুলি যে ফাইলগুলি খোলার জন্য বলেছে সেগুলি প্রদর্শন করে, এটি আপনার প্রয়োজনের জন্য পর্যাপ্ত নাও হতে পারে। (এবং আপনার সমস্যার বিষয়ে আপনি যে আরও তথ্য দিয়েছেন তা বোঝায় যে এটি তা নয় an বিকল্পের জন্য নীচে দেখুন))

এর মধ্যে ফাইল বা সাবফোল্ডার অন্তর্ভুক্ত নয় যাদের নাম দিয়ে শুরু হয়. । যাইহোক, আপনি CR2 ফাইল যাদের নাম একটি বিন্দু দিয়ে শুরু, আছে যদি তারপর অধিকাংশ সময় আপনি সম্ভবত না যাহাই হউক না কেন Shotwell তাদের খুলতে চান। আপনি যদি নিজের ইচ্ছাকৃতভাবে এই ফাইল বা ফোল্ডারগুলির নাম না দিয়ে থাকেন তবে কোনও চিত্র বা নথি ফাইলের নাম এক্সটেনশান সহ একটি ডটফিল কোনও প্রকৃত চিত্র বা নথির চেয়ে মেটাডেটা ফাইল হওয়ার সম্ভাবনা বেশি। উদাহরণস্বরূপ, ম্যাকোসগুলি প্রায়শই বাহ্যিক মিডিয়া অ্যাক্সেস করার সময় (ফ্ল্যাশ ড্রাইভ এবং ডিজিটাল ক্যামেরা সহ) এ জাতীয় ফাইলগুলি যুক্ত করে (উদাহরণস্বরূপ, ._kittens.cr2প্রকৃত চিত্রের জন্য kittens.cr2)।

আপনি যদি সেই ফাইলগুলিও খুঁজতে.. চান যাঁর নামগুলি শুরু হয় বা যেগুলি ফোল্ডারে রয়েছে যার নামগুলি শুরু হয় , তবে ডটগ্লোবও সক্ষম করুন। আপনি shopt -s dotglobউভয় globstarএবং বিল্টিনের সাথে বা পাস dotglobকরে এটি করতে পারেন shopt:

shopt -s globstar dotglob

ডিফল্টরূপে, গ্লোবগুলি কেস-সংবেদনশীল। কিন্তু আপনি চাইতে পারেন ফাইলের নামের মেলে কেস-insensitively তাই শেষ হওয়া ফাইল খুলুন হিসেবে, .cr2, .Cr2, .cR2, এবং .CR2। এটি করতে, হয়:

  • চলমান দ্বারা nocaseglob সক্ষম shopt -sসঙ্গে nocaseglobপারেন নিজে বা অন্য শেল বিকল্প সহ। উদাহরণস্বরূপ, shotwellসমস্ত .cr2ফাইল চালানো , সংবেদনশীলতার সাথে কেস অনুসন্ধান করা .এবং ফাইল-ডিরেক্টরি এবং ফাইল-ডিরেক্টরিতে .অন্তর্ভুক্ত:

    shopt -s globstar dotglob nocaseglob
    shotwell **/*.cr2
    
  • অথবা , নিজের গ্লোবাল প্যাটার্নের .[cC][rR]2পরিবর্তে ব্যবহার করুন .cr2। উদাহরণস্বরূপ, এটি উপরের মতো একইটি সম্পাদন করে:

    shopt -s globstar dotglob
    shotwell **/*.[cC][rR]2
    

    নোট করুন যে কেস সংবেদনশীলতা .ফাইল এবং ফোল্ডারগুলির মিল রয়েছে কিনা তা থেকে সম্পূর্ণ পৃথক । আপনি dotglobউপরের উদাহরণগুলি থেকে সরাতে পারেন এবং সেগুলি এখনও সংবেদন-সংবেদনশীল হতে পারে।

কেবলমাত্র বর্তমান ডিরেক্টরিটি ব্যবহার না করে একটি ডিরেক্টরি নির্দিষ্ট করতে তার নাম এবং একটি বিশ্বব্যাপী /আগে রাখুন **/*.cr2। উদাহরণস্বরূপ, shotwellউপরের কমান্ডটি এইটির পরিবর্তে আপনার হোম ডিরেক্টরিটির সাব-ডিরেক্টরিতে থাকা সমস্ত .cr2ফাইল খুলবে Pictures:

shotwell ~/Pictures/**/*.cr2

আপনার বর্তমান ডিরেক্টরিটি ব্যবহার করে এমন প্রথম কমান্ডের সাথে আলাদা নয়, আপনি যে কমান্ডটি চালাচ্ছেন তা বিবেচনা করেই আপনি শটওয়েলকে একই ফাইলগুলি খুলতে বলবেন না।

পরীক্ষামূলক

আপনার যদি সত্যিই এটির জন্য টার্মিনালটি ব্যবহার করতে হয় তবে আমি অনুমান করছি এটি আরও জটিল কিছু অংশ হতে পারে। আপনি যদি পছন্দ করেন তবে বাস্তবে এগুলি প্রতিস্থাপনের shotwellমাধ্যমে চালানোর আগে আপনি এই জাতীয় আদেশগুলি পরীক্ষা করতে পারেন printf '%s\n'। শটওয়েলে ফাইলের নামগুলি পরিবর্তনের পরিবর্তে প্রতি লাইনে একটি করে তাদের তালিকাভুক্ত করে। উদাহরণস্বরূপ, আমার মেশিনে:

ek@Io:~$ printf '%s\n' ~/tmp/**/*.cr2
/home/ek/tmp/another image.cr2
/home/ek/tmp/image.cr2
/home/ek/tmp/some folder/image3.cr2

গ্লোবস্টার এবং অন্যান্য শেল বিকল্পগুলি বন্ধ করা হচ্ছে

গ্লোবস্টার শেল বিকল্পটি কাজ করতে সক্ষম হয়েছে, যা shopt -s globstarকমান্ডটি (উপরে) করেছে। যদি এটি ইতিমধ্যে সক্ষম করা থাকে তবে আপনার একাধিক আদেশের দরকার নেই। এবং আপনার কেবল শেল ইনস্ট্যান্সের জন্য একবার গ্লোবস্টার সেট করা দরকার।

আপনি গ্লোবস্টারটি চালিয়ে ফিরে যেতে পারেন:

shopt -u globstar

এবং আপনি গ্লোবস্টারটি চালু করে চালু আছে কিনা তা পরীক্ষা করতে পারেন :

shopt globstar

যদি আপনি কোনও স্ক্রিপ্টে গ্লোবস্টার ব্যবহার করে থাকেন তবে আপনার যদি একই স্ক্রিপ্টের পরে গ্লোবস্টারের সাথে লেখা না থাকে এমন কোড থাকতে পারে তবে আপনাকে এটিকে ফিরিয়ে দেওয়ার কথা বিবেচনা করা উচিত। উদাহরণস্বরূপ, **যখন আপনি বোঝাতে চেয়েছেন তখন লেখার *ক্ষেত্রে সাধারণত সমস্যা হয় না যখন গ্লোবস্টার অক্ষম থাকে তবে গ্লোবস্টার চালু হওয়ার সাথে সাথে এটি কোনও আদেশের চেয়ে কারও বেশি ফাইলকে প্রভাবিত করে একটি কমান্ড তৈরি করে গুরুতর সমস্যা সৃষ্টি করতে পারে।

একইভাবে, যদি আপনি dotglob বা nocaseglob ব্যবহার করা হয় এবং আপনি খুব এটি বন্ধ করে চান, আপনি তাই করতে পারেন shopt -u dotglobএবং shopt -u nocaseglobযথাক্রমে। আপনি shopt -uএকই সময়ে আনসেট করতে একাধিক শেল বিকল্পগুলিও পাস করতে পারেন । উদাহরণস্বরূপ, বন্ধ করা globstar, dotglob, এবং nocaseglob:

shopt -u globstar dotglob nocaseglob

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

এই গ্লোব সম্পর্কিত শেল বিকল্পগুলি (এবং সাধারণভাবে গ্লোবগুলিতেও ) সম্পর্কিত আরও তথ্যের জন্য , ব্যাশের রেফারেন্স ম্যানুয়ালটি দেখুন । এগুলি সমস্তই মূলত 4.3.2 শপ বিল্টিনে আচ্ছাদিত । গ্লোবস্টারের জন্য, আরও দেখুন 3.5.8.1 প্যাটার্ন ম্যাচিং । ডটগ্লাবের জন্য, ফাইলের নাম সম্প্রসারণও 3.5.8 দেখুন ।


একটি নতুন ডিরেক্টরি ট্রি তৈরি করা হচ্ছে

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

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

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

আপনার আরও একটি সিদ্ধান্ত নেওয়ার দরকার আছে। আপনি কি একই ডিরেক্টরিতে সমস্ত নতুন এন্ট্রি (সেগুলি অনুলিপি বা সিমলিংক) তৈরি করেন, ফাইল স্তরক্রমকে সমতল করে? অথবা আপনি উত্সের প্রতিটি ডিরেক্টরিকে অন্তর্ভুক্ত ডিরেক্টরিতে অন্তত একটি .cr2ফাইল ধারণ করে ডিরেক্টরিগুলি তৈরি করেন ?

  • ফাইলের স্তরক্রমকে সমতল করা আপনাকে সহজেই সহজেই সমস্ত ফাইল দেখতে দেয়। বিশেষত, ফাইলগুলির নাম এবং মাপগুলি একবারে দেখতে পারা পাশাপাশি গ্রাফিকাল ফাইল ব্রাউজারে ফাইলগুলির কোনও সমন্বয় নির্বাচন করা সহজ select

  • তবে এটি কোন ফোল্ডারে ছিল সেগুলি সম্পর্কিত তথ্য হারাবে, যা মূল্যবান হতে পারে (যদিও আপনি মূল ফোল্ডারে ফিরে যেতে পারেন এবং যদি ফাইলগুলি না সরান তবে সেখানে সেগুলি সন্ধান করতে পারেন)।

  • ফাইলের স্তরক্রমকে সমতল করার ক্ষেত্রে আরও বড় সমস্যা হ'ল যদি আপনার একই জায়গায় দুটি বা একাধিক ফাইল বিভিন্ন জায়গায় থাকে তবে তা ঘটে । আপনি যদি ফাইল স্তরক্রমকে সমতল করেন, তবে আপনি এটি কীভাবে করেন তার উপর নির্ভর করে প্রথমটি বাদে সমস্তগুলি অনুলিপি করা (বা সংযুক্ত) হতে ব্যর্থ হবে এবং আপনি একটি ত্রুটি বা সতর্কতা পাবেন, বা শেষের অনুলিপি (বা লিঙ্ক) ব্যতীত অন্যটি হবে হতে ওভাররাইট

    এটি অন্য একটি কারণ যা আমি ফাইলগুলি সরানোর পরিবর্তে অনুলিপি বা সিমলিংকগুলি তৈরি করার প্রস্তাব দিই। আপনি যদি "সফলভাবে" একই ফাইলটিতে একাধিক ফাইল সরান, আপনি সর্বশেষ ব্যতীত সমস্ত হারিয়েছেন!

সাব-ডাইরেক্টরিগুলি ব্যতীত সমস্ত কিছুকে একটি একক ডিরেক্টরিতে সমতল করার অসুবিধার কারণে, আমি এখানে যে পদ্ধতিগুলি গ্রহণ করি তা গন্তব্যে একটি নতুন ডিরেক্টরি ট্রি তৈরি করে।

উপায় 1: অনুলিপি করা

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

যখন আপনাকে ডিরেক্টরি ট্রি অনুলিপি করতে হবে এবং আপনার অনুলিপি অপারেশনটি কাস্টমাইজ করতে হবে তখন আপনার সাধারণত rsyncপরিবর্তে ব্যবহার করা উচিত cp। এই সেই ক্ষেত্রে এক।

srcআপনার সমস্ত সিআর 2 ফাইল সমন্বিত শীর্ষ স্তরের ডিরেক্টরিতে যাওয়ার পথটি প্রতিস্থাপন করা এবং destআপনি যে ডিরেক্টরিটি তৈরি করতে চান তার নামের পরিবর্তে সিআর 2 ফাইলে প্রতীকী লিঙ্কের স্তরক্রম থাকবে, চালনা করুন:

rsync -rl --prune-empty-dirs --include='*/' --include='*.cr2' --exclude='*' src/ dest

/উত্স ডিরেক্টরিটির নামের পরে ভুলে যাবেন না , যদি না আপনি ভিতরে কোনও অতিরিক্ত শীর্ষ-স্তরের ডিরেক্টরি তৈরি করতে চানdest । এটি হ'ল, আপনি যদি অনুসরণের কাজটি বাদ দেন /, তবে rsyncআপনার জন্য গন্তব্যের ডিরেক্টরিটি ভিতরে তৈরি করবে dest। উদাহরণস্বরূপ, ধরুন srcকোনও আপেক্ষিক পথ যা নং রয়েছে /। তারপর:

  • সঙ্গে src/আপনার rsyncকমান্ড, আপনি একটি সিমবলিক লিঙ্ক পেতে dest/foo/bar.cr2ফাইলের জন্য src/foo/bar.cr2
  • সঙ্গে srcআপনার rsyncকমান্ড, আপনি একটি সিমবলিক লিঙ্ক পেতে ফাইলের জন্য ।dest/src/foo/bar.cr2src/foo/bar.cr2

যেহেতু এটি শীর্ষ স্তরের ডিরেক্টরিটির জন্য বিভ্রান্তিকর হতে পারে যেখানে সিমলিংকগুলিতে শীর্ষ-স্তরের ডিরেক্টরিতে .cr2যে ফাইলগুলি থাকে যা সিমলিংকগুলি নির্দেশ করবে সেগুলির জন্য একই নামটি স্থাপন করা হবে, তাই আমি আপনাকে /গন্তব্যের শেষে অন্তর্ভুক্ত করার পরামর্শ দিচ্ছি আপনার rsyncকমান্ড ডিরেক্টরি ডিরেক্টরি । (এবং উত্স ডিরেক্টরিতে, এটি একটি ডিরেক্টরি দিন যা খালি, অস্তিত্বহীন, বা অন্যথায় এই উদ্দেশ্যে উত্সর্গীকৃত Otherwise

হিসাবে সাধারণত ক্ষেত্রে দেখা যায় যখন আপনি একটি ফাইল বা একটি কম্যান্ড-লাইন প্রোগ্রাম বা স্ক্রিপ্টে ডিরেক্টরি নাম পাস, যদি আপনার গন্তব্য বা সোর্স ডিরেক্টরিতে পাথ কোনো ফাঁকা স্পেস (অথবা অক্ষর শেল, মত দ্বারা বিশেষভাবে চিকিত্সা ধারণ \, $, ', এবং বিভিন্ন অন্যান্য বিরামচিহ্ন), তারপরে আপনাকে সেগুলি উদ্ধৃত করতে হবে । "ওয়ে 2" - এ, স্পেসগুলির সর্বাধিক সাধারণ ক্ষেত্রে, কীভাবে এটি করবেন তা আমি বিশদ দিয়েছি - that বিভাগে উদ্ধৃতি দেওয়ার পরামর্শটি এখানেও প্রযোজ্য। তবে, যদি আপনি নিশ্চিত হন না কীভাবে কোনও ফোল্ডারের নামটি উদ্ধৃত করবেন, আপনি উমুন্টুটিকে ফোল্ডারটি টেমারমিনালে টেনে আনতে পারেন; এর সম্পূর্ণ পথটি সঠিক উদ্ধৃতি সহ আটকানো হবে

.cr2সেগুলিতে থাকা ফাইল এবং ফোল্ডারগুলি অনুলিপি করার পরে , আপনি শটওয়েলে গন্তব্য ফোল্ডারটি খুলতে পারেন। ( উপরের শটওয়েলে "চিত্রগুলির একটি ফোল্ডার খোলার (সাবফোল্ডারগুলি সহ) দেখুন " running) তবে, চালানোর আগে rsync, আমি আপনাকে সিদ্ধান্ত নিতে পরামর্শ দিচ্ছি যে আপনি যে এন্ট্রিগুলি শুরু করবেন .এবং যদি আপনি কেস-বৈকল্পিক প্রত্যয় সহ এন্ট্রিগুলি অন্তর্ভুক্ত করতে চান তবে এড়িয়ে যেতে চান কিনা decide যদি তা হয় তবে আপনাকে কিছুটা আলাদা rsyncকমান্ড চালাতে হবে ।

বিন্দুযুক্ত এন্ট্রি এবং কেস সংবেদনশীলতা হ্যান্ডলিং কাস্টমাইজ

rsyncকোনও ডট দিয়ে শুরু হওয়া ফাইল এবং ডিরেক্টরিগুলি এড়িয়ে গেছে এবং আপনি প্রত্যয়টির সাথে মিলে কেস-সংবেদনশীলতা চান কিনা তা পরিবর্তনের জন্য আপনি আলাদা কমান্ডটি ব্যবহার করতে চাইতে পারেন .cr2

কমান্ড উপরে আছে ডিরেক্টরি এবং ফাইল যাদের নাম দিয়ে শুরু অন্তর্ভুক্ত .এই জাতীয় ফাইল এবং ডিরেক্টরিগুলি বাদ দিতে --exclude='.*/' --exclude='.*'অন্য সমস্ত --includeগুলি এবং --excludeগুলি এর আগে রাখুন । এটির rsyncপরিবর্তে এই কমান্ডটি ব্যবহার করুন (যথাযথ বিকল্পগুলির সাথে srcএবং destঅবশ্যই):

rsync -rl --prune-empty-dirs --exclude='.*/' --exclude='.*' --include='*/' --include='*.cr2' --exclude='*' src/ dest

rsyncদেখানো কমান্ড দূর পর্যন্ত কেস সংবেদনশীল হয়েছে এবং যে শেষ ফাইল কপি করা হবে না .CR2, .Cr2অথবা .cR2বরং .cr2। আপনি এই ধরনের ফাইল কপি করতে চান, তাহলে আপনি ব্যবহার করে যে জন্য অ্যাকাউন্ট করতে হবে --includeপ্যাটার্ন *.[cC][rR]2স্থানে *.cr2

এই তৃতীয় কমান্ডটি কেস-সংবেদনশীল এবং (প্রথম কমান্ডের মতো) ফাইল এবং ডিরেক্টরিগুলি বাদ দেয় না যাদের নাম দিয়ে শুরু হয় .:

rsync -rl --prune-empty-dirs --include='*/' --include='*.[cC][rR]2' --exclude='*' src/ dest

আপনি যদি ফাইলগুলি অনুলিপি করার পদ্ধতির সাথে গ্রহণ করেন rsyncএবং আপনি নিশ্চিত হন যে এই কমান্ডগুলির মধ্যে কোনটি চান, তবে আপনি যদি কিছু মিস না করেন তা নিশ্চিত করতে চাইলে আমি সেটিকে ব্যবহার করার পরামর্শ দিই । যাইহোক, আপনার সচেতন হওয়া উচিত যে ডটফাইলে মেটাডেটা থাকতে পারে এবং চিত্রের মতো নামের ডটফাইলগুলি সত্যই চিত্র হতে পারে না। মধ্যে dotfiles আলোচনা দেখুন "ইমেজের ফাইলগুলির নাম একটি তালিকা সঙ্গে লঞ্চ Shotwell" উপরে অধ্যায় এবং, dotfiles এবং কেস সংবেদনশীলতা এ "ওয়ে 2" নীচের।

এই চতুর্থ কমান্ডটি কেস-সংবেদনশীল এবং (দ্বিতীয় কমান্ডের মতো) ফাইল এবং ডিরেক্টরিগুলি বাদ দেয় যাঁর নাম দিয়ে শুরু হয় .:

rsync -rl --prune-empty-dirs --exclude='.*/' --exclude='.*' --include='*/' --include='*.[cC][rR]2' --exclude='*' src/ dest

উপায় 2: প্রতীকী লিঙ্ক তৈরি করা

গন্তব্য ড্রাইভে আপনার পর্যাপ্ত জায়গা থাকলে ওয়ে 1 ঠিক আছে, তবে আমি আপনাকে এটি করার পরামর্শ দিই। এটি ব্যবহার করতে আপনাকে ওয়ে 1 টি পড়তে হবে না।

এখানে উপস্থাপিত পদ্ধতি তালিকার মাধ্যমে .cr2ফাইলগুলি এবং লুপগুলির একটি তালিকা তৈরি করে, প্রয়োজনীয় লক্ষ্যবস্তু ডিরেক্টরি তৈরি করে এবং প্রতিটি .cr2ফাইলের প্রতীকী লিঙ্কগুলি সহ সেগুলি স্থাপন করে ।

এটি কেবলমাত্র জটিল যে আমি এটি কেবল ইন্টারেক্টিভভাবে টাইপ না করে স্ক্রিপ্টে রাখার পরামর্শ দিই। আপনি যেখানে চান সেখানে স্ক্রিপ্টটি রাখতে পারেন, তবে সুবিধার জন্য, আমি আপনার হোম ফোল্ডারে সরাসরি স্ক্রিপ্টটি দিয়ে কীভাবে এটি করব তা দেখাব।

স্ক্রিপ্টটি লিখুন (বা পেস্ট করুন)।

make-symlinksআপনার বাড়ির ফোল্ডারে একটি পাঠ্য ফাইল তৈরি করুন । কোনও ফাইল এক্সটেনশনের প্রয়োজন নেই।

আপনি এটি কোনও পাঠ্য সম্পাদক, যেমন ভিম, ন্যানো, গেডিট বা লিফপ্যাড দিয়ে করতে পারেন। যদিও, LibreOffice Writer এর মতো কোনও ওয়ার্ড প্রসেসর ব্যবহার করবেন না। (আপনি এটি চালাতে cat > ~/make-symlinks, ফাইলের সামগ্রীতে আটকানো এবং আপনি চাইলে একটি নতুন লাইনে Ctrl+ টিপে এটিও করতে পারেন do D)

আপনি যদি স্ক্রিপ্টটির নাম বাদে অন্য কোনও কিছু রাখেন make-symlinks, আপনি যখন স্ক্রিপ্টটি পরে ব্যবহার করে এমন কমান্ডগুলি চালাবেন তখন সেই নামটি ব্যবহার করার বিষয়টি নিশ্চিত করুন।

#!/bin/bash

shopt -s globstar dotglob nocaseglob

for f in **/*.cr2; do
    mkdir -p "$1/$(dirname "$f")"
    ln -s "$PWD/$f" "$1/$f"
done

ফাইলটিতে রাখুন এবং ফাইলটি সংরক্ষণ করুন। এই স্ক্রিপ্টটি গ্লোবস্টার ব্যবহার করে, একটি চিত্র বৈশিষ্ট্য যা "চিত্র ফাইলের তালিকার সাথে শটওয়েল চালু করা" তে উপরে ব্যাখ্যা করা হয়েছে ।

আপনি কীভাবে বিন্দুযুক্ত এন্ট্রি এবং কেস সংবেদনশীলতা পরিচালনা করে তা পরিবর্তন করতে পারেন।

আপনার প্রয়োজনের উপর নির্ভর করে আপনি কিছু পরিবর্তন করতে চাইতে পারেন:

  • আপনি যদি সেই .cr2ফাইলগুলি অন্তর্ভুক্ত করতে না চান যাদের নাম দিয়ে শুরু হয় .বা যেগুলির নামগুলি শুরু হয় সেই ডিরেক্টরিগুলিতে থাকে তবে লাইনটি .সরিয়ে ফেলুন ।dotglobshopt

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

  • আপনি অন্তর্ভুক্ত করতে চাইলে শুধুমাত্র ঠিক যে শেষ ফাইল .cr2কিন্তু না কেস রূপগুলো ( .CR2, .Cr2, এবং .cR2), তারপর আপনি সরাতে উচিত nocaseglob। যেহেতু আপনার পরিস্থিতি ডেটা পুনরুদ্ধারের সাথে জড়িত এবং শটওয়েল আপনাকে প্রতীকী লিঙ্কের ডিরেক্টরি খুললে আপনি যে ফাইলগুলি মিস করেছেন তার কোনওটি আপনাকে দেখাবে না - সর্বোপরি এই পদ্ধতির মূল বিষয় - আপনি সম্ভবত রাখতে চাইবেন nocaseglob

এটি কার্যকর করা।

আপনার স্ক্রিপ্টটি সম্পাদনযোগ্য হিসাবে চিহ্নিত করতে এই আদেশটি চালান:

chmod +x ~/make-symlinks

এটি উত্স এ চালান এবং একটি আর্গুমেন্ট হিসাবে গন্তব্য পাস।

তারপরে ডিরেক্টরিটি উত্স ডিরেক্টরিতে পরিবর্তন করুন, অর্থাত্ শীর্ষগুলি স্তরের ফোল্ডারে ছবি রয়েছে। উদাহরণস্বরূপ, যদি তারা Picturesআপনার হোম ডিরেক্টরিটির উপ-ডিরেক্টরিতে থাকে তবে আপনি চালনা করবেন:

cd ~/Pictures

আপনি এখানে স্ক্রিপ্টটি চালাবেন। কমান্ড-লাইন আর্গুমেন্ট হিসাবে গন্তব্য ডিরেক্টরিটি স্ক্রিপ্টে পাস করুন।

উদাহরণস্বরূপ, আপনি যদি cr2sডেস্কটপটিতে প্রতীকী লিঙ্কগুলি ধারণ করতে ডেস্কটপ তৈরি করতে চান তবে চালনা করুন:

~/make-symlinks ~/Desktop/cr2s

অথবা আপনি যদি কেবল নিজের বাড়ির ফোল্ডারে সেই ডিরেক্টরিটি চান:

~/make-symlinks ~/cr2s

অথবা যদি আপনার কোনও ড্রাইভ মাউন্ট করা থাকে /media/you/MyDriveএবং আপনি এটিতে একটি ফোল্ডার তৈরি করতে চান linksযা প্রতীকী লিঙ্কগুলি ধারণ করে:

~/make-symlinks /media/you/MyDrive/links

তবে ড্রাইভটি যদি /media/you/My Drive(কোনও স্থান সহ) থাকে তবে আপনার অবশ্যই উদ্ধৃতি ব্যবহার করতে হবে। এর মধ্যে যে কোনও একটি কাজ (কেবল একটি ব্যবহার করুন, সেগুলি সমস্ত চালান না):

~/make-symlinks '/media/you/My Drive/links'
~/make-symlinks /media/you/'My Drive'/links
~/make-symlinks /media/you/My\ Drive/links

তবে আপনি যদি ~নিজের হোম ডিরেক্টরিতে ব্যবহার করেন তবে তা উদ্ধৃত করবেন না:

~/make-symlinks ~/'Two Words'   # good
~/make-symlinks ~/Two\ Words    # good
~/make-symlinks '~/Two Words'   # BAD, because ~ doesn't get expanded

make-symlinksএটি ইতিমধ্যে বিদ্যমান না থাকলে আপনার জন্য গন্তব্য ডিরেক্টরি তৈরি করে, যেমন এটি এর মধ্যে উপ-ডিরেক্টরি তৈরি করে। তবে গন্তব্য ইতিমধ্যে বিদ্যমান থাকলে এটি এখনও কাজ করে।

এমনকি আপনি এটি একাধিকবার চালাতে এবং একই গন্তব্য ডিরেক্টরিটি পাস করতে পারেন (উদাহরণস্বরূপ, আপনি এটি Ctrl++ দিয়ে বাধা দিলে C) যদিও আপনি failed to create symbolic linkইতিমধ্যে বিদ্যমান সিমলিংকের জন্য ত্রুটি পাবেন এবং এটি বিভ্রান্তিকর হতে পারে।

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

নতুন নির্মিত সিমলিংক গাছ শটওয়েলে আমদানি করুন।

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

যেহেতু ফোল্ডারের সমস্ত এন্ট্রি হয় সেগুলি .cr2ফাইল বা ডিরেক্টরিগুলির মধ্যে প্রতীকী লিঙ্ক , অন্য কোনও ফাইল টাইপ না থাকায় শটওয়েলকে অন্য কোনও ফাইল দেখতে পাওয়া উচিত নয়।


5

শটওয়েল প্রতিটি ডিরেক্টরি যেখানে পাওয়া যায় সেখানে পাওয়া সমস্ত চিত্রের মধ্যে চক্র রাখে, তাই find -name '*.cr2' -exec shotwell '{}' +আমি সাধারণত পরামর্শ হিসাবে ব্যবহার করা আসলেই সহায়তা করে না। শটওয়েলের সেটিংস যেহেতু সীমাবদ্ধ সেহেতু কেবলমাত্র আপনি যে ফাইলগুলি চান তা খোলার আমি কেবল ভাবতে পারি তা হ'ল ফাইলগুলি নিজেরাই একটি নতুন ডিরেক্টরিতে স্থানান্তর করা।

আপনি এটির findজন্য ব্যবহার করতে পারেন :

mkdir ~/cr2files
find -type f -iname '*.cr2' -not -path './dir/*' -exec cp -v -- '{}' ~/cr2files \;

প্রতিস্থাপন cpসঙ্গে mvআপনি ডুপ্লিকেট ফাইল তৈরি এড়াতে চান।

মন্তব্য:

  • mkdir ~/cr2files আপনার হোম ডিরেক্টরিতে একটি নতুন ডিরেক্টরি তৈরি করুন
  • find গাছের মাধ্যমে নীচের দিকে বর্তমান ডিরেক্টরি থেকে পুনরাবৃত্তি অনুসন্ধান করুন
  • -type f কেবল ফাইলের জন্য অনুসন্ধান করুন
  • -iname কেস উপেক্ষা করে নাম অনুসারে ফাইল অনুসন্ধান করুন
  • '*.cr2'এর সাথে শেষ হওয়া নামগুলি .cr2- শেলটি প্রসারণের আগে শেলটি সম্প্রসারণ বন্ধ করতে কোট ব্যবহার করুনfind
  • -not -path './dir/*'dirফলাফল থেকে ডিরেক্টরি বিষয়বস্তু বাদ দেবে
  • {} প্রাপ্ত ফাইলগুলির পাথের প্রতিনিধিত্ব করে
  • --এর পরে cpআর cpকোনও বিকল্প গ্রহণ না করার কথা বলা হয়েছে, যা -সমস্যার কারণ হতে শুরু হওয়া কোনও ফাইল নাম এড়িয়ে চলে

তারপরে আপনি নতুন ডিরেক্টরিতে শটওয়েল দিয়ে কোনও ফাইল খুলতে পারেন এবং সেগুলির মাধ্যমে চক্রটি নিয়ে যেতে পারেন


কেন এটি ডিরেক্টরিতে .jpg এবং .png ফাইলগুলি খুলবে? আমি দেখতে পাচ্ছি যে এটি * .cr2 নির্দিষ্ট করে? আমি যখন শটওয়েলে বাম তীরটি চাপ দিই তখন আমি কেবল .cr2 ফাইলগুলি দেখতে কীভাবে তা পাব? আমি যদি + এর পরিবর্তে a use ব্যবহার করি তবে কিছুই হয় না :(
ব্যবহারকারী285884

উহু! এটি ইউজার ২৮৮৮৮৪ এর সমস্যা যা আমি দুঃখিত, ডিরেক্টরিতে পাওয়া সমস্ত চিত্রের মাধ্যমে শটওয়েল চক্র ... আমি এটির চারপাশে কোনও উপায় বের করতে পারি কিনা তা আমাকে দেখতে দিন ...
জান্না

@ ব্যবহারকারী ২৮৮৮৮০ সম্পাদিত হয়েছে, তবে আমি একটি মার্জিত সমাধান বের করতে পারছি না :(
জান্না

1
ঠিক আছে, চেষ্টা করার জন্য ধন্যবাদ! এটি কী, আমি .cr2 ফাইলগুলির জন্য ডিরেক্টরিটি অনুসন্ধান করি এবং তাদের পৃথক ফোল্ডারে কল cr2files এ স্থানান্তর করি। আমি এমভি * .সিআর 2 ../cr2files/ ব্যবহার করে এটি একটি সাবফোল্ডারের মধ্যে সম্পন্ন করেছি এবং এটি কার্যকর হয়েছে! তবে, আমি এটি কীভাবে করব এবং কোন ফাইলগুলি সন্ধান করতে হবে তা নির্দিষ্ট করব? "আরে লিনাক্স .cr2 ফাইলগুলির জন্য ফোল্ডারগুলিকে 1-10 দেখেন এবং এটি cr2files ফোল্ডারে সরান"? ধন্যবাদ জান্না
ব্যবহারকারী ২৮৮৮৮৪

1
আমি যেখানে আছি সে সম্পর্কে কিছুটা প্রসঙ্গে well আমি কয়েকটি ছবি হারিয়েছি। সুতরাং আমি একটি ফটোরেক করেছি এবং এটি আমাকে ফোটোগুলির একটি বোতল বোঝা দিয়েছে, যা আমার পুরো হার্ড ড্রাইভ পূরণ করার জন্য যথেষ্ট। সুতরাং আমি আমার হার্ডড্রাইভের সমস্ত ফোল্ডারগুলিকে একটি ব্যতীত সন্ধান করতে চাই কারণ তার কাছে আমার কাছে জানা একটি টন .cr2 ফাইল রয়েছে যা আমি খুঁজছি। সুতরাং আমি চাই লিনাক্সের জন্য একটি ব্যতীত সমস্ত ফোল্ডারগুলির মধ্য দিয়ে যাওয়া। আমি নিশ্চিত না যে আপনার কোড এটি করে। কি করতে চাচ্ছ? এছাড়াও -v পরে "-"? ধন্যবাদ জান্না!
ব্যবহারকারী285884

1

বিকল্প 1 - xargsফাইলের নাম ফাঁকা থাকার সময় ব্যবহার করে

নীচের মন্তব্যগুলিতে যেমন উল্লেখ করা হয়েছে, back ticksফাইলের নামগুলি ফাঁকা রাখলে (নীচে অপশন 3) ব্যবহারটি ভেঙে যাবে। findকমান্ডটি ব্যবহার করার নিরাপদ পদ্ধতি এবং বিকল্পটি shotwellব্যবহার করে আউটপুট পাস করার xargsমত দেখাচ্ছে:

find . -name "*.cr2" -print0 | xargs -0 shotwell

-print0ফ্ল্যাগ ব্যবহার খুঁজতে বলে \0(নাল চরিত্র) ফাইলের নামের মধ্যে বিভেদক, এবং -0পতাকা বলে xargsএই আশা \0বিভেদক।

স্ট্যাক ওভারফ্লোতে এখানে পাওয়া দুর্দান্ত উত্তরের ( ফাইন্ড কমান্ড দ্বারা ফাইলে থাকা ফাইলগুলির তালিকা কীভাবে পাইপ করা যায়) ক্রেডিট ।

বিকল্প 2 - -execফাইলের নাম ফাঁক থাকা অবস্থায় ব্যবহার করা Using

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

find . -name "*.cr2" -exec shotwell {} +

বিকল্প 3 - যখন ফাইলের নামের ফাঁকা স্থান নেই

পুরানো দিনগুলিতে, ফাইলের নামের ফাঁকা স্থান এবং 256 টি অক্ষর দীর্ঘ হওয়ার আগে এই বিকল্পটি ভাল কাজ করেছিল। আপনি অন্যান্য অনেক ওয়েবসাইটে উল্লিখিত এই বিকল্পটি দেখতে পাবেন তবে আপনার এই বিকল্পটি ব্যবহার করা উচিত নয় । দিনের মধ্যে, findকমান্ডটি ব্যবহার করা এবং আউটপুটটি পাস করা shotwellসহজ পদ্ধতি ছিল:

shotwell `find . -name "*.cr2"`

এটি findবর্তমান ডিরেক্টরি থেকে শুরু করে এবং সমস্ত উপ-ডিরেক্টরি অন্তর্ভুক্ত করে:

  • উপরে back tickএকক উদ্ধৃতি ব্যবহার এবং না নোট করুন '। ব্যাক-টিকগুলি ব্যবহার করা ব্যাশের মধ্যে থাকা বাক্যগুলির সাথে সমান $(...)
  • প্রথম যুক্তি একটি সূচনা পয়েন্ট .দেয় findযা বর্তমান ডিরেক্টরি। আপনি পাস /home/$USER/Picturesবা অন্য কিছু পরিবর্তে পারে .
  • দ্বিতীয় যুক্তি -nameফাইলের নাম অনুসন্ধান করতে বলে (ডিরেক্টরি নয়) tells
  • এই কৌশলটি সব কমান্ড জন্য কাজ করে, শুধু shotwell। অর্থাত আপনার জন্য এটি ব্যবহার করতে পারেন cat, head, tailএবং অন্যান্য অধিকাংশ জনপ্রিয় লিনাক্স কমান্ড।

ব্যাকটিক্স ব্যবহার করা এক ধরণের ভ্রূক্ষেপযুক্ত, এবং এতে শব্দ বিভাজন নিয়ে সমস্যা রয়েছে। আমি আপনাকে এটির সাথে পাইপ পরিবর্তন করতে xargs এবং -0সমস্ত ফাইলের নাম পৃথক হিসাবে NULL স্ট্রিং ব্যবহার করার পরামর্শ দিই
সের্গি কলডিয়াজহনি

এই উত্তরের পদ্ধতির সাথে সমস্যাটি হ'ল ফাইলের নাম, বা ডিরেক্টরিগুলির যে কোনও নাম রয়েছে যা ফাইলগুলি অন্তর্ভুক্ত করে তা ভুল কাজ করে। মনে রাখবেন, যদিও অনেকে $( )ব্যাকটিক কমান্ড সাবস্টিটিউশন সিনট্যাক্সের চেয়ে কমান্ড সাবস্টিটিউশন সিনট্যাক্সকে পছন্দ করে, এটি এই সমস্যার সাথে প্রাসঙ্গিক নয় - তারা উভয়ই ঠিক একইভাবে ব্যর্থ হয়েছে। @ সার্জ আমি এটি দিয়ে কীভাবে নতুন উত্তর পোস্ট করার পরামর্শ দিচ্ছি xargs। (প্রতিস্থাপনের কাজটিও কার্যকর " "হবে না: সমস্ত findফলাফল একক যুক্তি হিসাবে পাস করা হবে))
এলিয়াহ কাগন

এই উত্তরটি লেখার সময় আমি xargsবিকল্পটিও দেখেছি Stack Overflow। আমি সেই বিকল্পটি দিয়ে প্রসারিত করব। দুর্ভাগ্যক্রমে আমাকে উইন্ডোজ 8 দিয়ে বুট করতে NTFSহয়েছিল দুর্নীতিগ্রস্থ পার্টিশনটি ঠিক করতে তাই পরীক্ষার সমস্যা ছিল was উত্তরটি পরে আপডেট করব। এটি
দেখানোর

কেন শুধু ব্যবহার -execকরবেন না ?
জান্না

@ জান্না আমি -execবিকল্পটিও যুক্ত করব :)
উইনউনুছুস ইউনিক্স

-2

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


আপনি এই উত্তর (দ্বারা প্রসারিত করতে সম্পাদন করা কিভাবে নিয়ন্ত্রণ কেন্দ্রে (অথবা Darktable) শুধু ব্রাউজ করতে ব্যবহার করতে উপর বিস্তারিত তথ্য অন্তর্ভুক্ত করা ING) .cr2ফোল্ডারে ফাইল? যদি তাই হয়, তাহলে এই, মূল্যবান হতে পারে, যেহেতু মূল পোস্টার কষ্ট Shotwell দেখানোর জন্য পেয়ে করেছে মাত্র.cr2 ফাইল। যদিও আমি অতিরিক্ত পন্থা জুড়েছেন আমার উত্তর আমি বরং অতিমাত্রায় সন্দেহভাজন Shotwell এই জন্য শ্রেষ্ঠ হাতিয়ার নয় এটা সম্ভব শুধু ঐ ফাইল এবং কোন অন্যদের ব্রাউজ করতে Shotwell ব্যবহার করতে করতে।
এলিয়াহ কাগান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.