প্রচুর পরিমাণে ফাইল সরানো হচ্ছে (~ 100 000)


13

আমি ফোল্ডারগুলির সাথে কাজ করি যা প্রতি ফোল্ডারে 100 000 বা এমনকি 1 000 000 ফাইলের মতো অনেকগুলি ফাইল রয়েছে। আমি যখন কোনও ফোল্ডারের সামগ্রী অন্যটিতে স্থানান্তরিত করার চেষ্টা করি তখন আমার কম্পিউটার সর্বদা আটকে যায়। প্রক্রিয়াটি শেষ হয়ে গেলেও, আমি কোনও ফোল্ডারের সামগ্রী দেখতে পাচ্ছি না কারণ নটিলাস সম্পূর্ণ হিমায়িত হয়ে গেছে এবং আমার কম্পিউটারটি পুনরায় আরম্ভ করতে বাধ্য করতে হবে। আমি লক্ষ্য করেছি যে আমি যখন ১০০০০ ফাইলের মতো সরানোর চেষ্টা করি তখন এটিও ঘটে।

এটি কি আমার কম্পিউটারের সমস্যা বা এই নম্বরগুলির সাথে কাজ করার সময় এটি স্বাভাবিক?

এই ফাইল স্থানান্তর সম্পাদন করার কোনও স্মার্ট উপায়?


3
টার্মিনালটি ব্যবহার করার বিষয়ে ( cp -R SRC/ DEST/)
সার্বজনীনভাবে

2
@ ভরদ্বাজরাজু: ফাইলের উপর নির্ভর করে সিপি -a আরও ভাল হতে পারে কারণ এটি মালিক, টাইমস্ট্যাম্প এবং অনুমতি সংরক্ষণ করে। আমি আরএসসিএনসি-র প্রস্তাব দিই কারণ এটি স্থানান্তর যাচাই করতে পারে এবং কেবলমাত্র ফাইলগুলি অনুলিপি করতে পারে যা ইতিমধ্যে বিদ্যমান নেই।
মাইকেল

আপডেট: gvfs-copy( gvfs-binপ্যাকেজ থেকে ) এর চেয়ে দ্রুত হতে পারে cp
সর্বজনীনভাবে

একজনের পরিবর্তে এখানে আপনার দুটি প্রশ্ন রয়েছে। নির্দেশাবলীর জন্য দয়া করে জিজ্ঞাসা পৃষ্ঠাটি চেক করুন ।
Luís de Sousa

উত্তর:


19

খুব বড় পরিমাণে ফাইল হস্তান্তর করার জন্য সম্ভবত খাঁটি কমান্ড লাইন পদ্ধতিটি বিবেচনা করুন, আপনি নিঃসন্দেহে গুই ব্যবহার করার চেয়ে প্রক্রিয়াটি যথেষ্ট দ্রুত গতিতে দেখতে পাবেন ।

এটি সম্পাদন করার বিভিন্ন উপায় রয়েছে, তবে নিম্নলিখিতগুলি আমার সিস্টেমে দ্রুত, নিরাপদে এবং দক্ষতার সাথে কাজ করেছে:

find . -maxdepth 1 -type f -print0 | xargs -0 mv -t <destination>

এই আদেশের জন্য কিছু ব্যাখ্যা:

  1. আপনার ইনপুট ডিরেক্টরিটি ''। অক্ষর এবং এই বিশেষ কমান্ডের জন্য আপনাকে সেই ডিরেক্টরিতে থাকতে হবে
  2. আপনার আউটপুট ডিরেক্টরিটি <destination>আমার উদাহরণে। অবশ্যই আপনার নিজের প্রয়োজন অনুসারে এটি সংশোধন করুন এবং বন্ধনীগুলি ছেড়ে যান।
  3. এই বাক্য গঠনটি বোনাস হিসাবে ফাঁকা জায়গাগুলির ফাইল নামগুলির জন্য অনুমতি দেয় :)

অন্তহীন অনুমতি দেওয়া সম্ভব তবে এটি গির চেয়ে আরও ভাল এবং দক্ষতার সাথে কাজ করা উচিত । উদাহরণস্বরূপ একটি অনুক্রম: আপনি যদি কেবল পিডিএফ ফাইলগুলি সরিয়ে নিতে চান তবে আপনি চালাতে পারেন:

find . -iname "*.pdf" -maxdepth 1 -type f -print0 | xargs -0 mv -t <destination>

xargsবিশেষত এত বড় সংখ্যক ফাইলের চলাচলের সাথে ব্যবহারের ফলে অনেকগুলি সম্ভাবনা খোলে। অনেক, অনেক সম্ভাবনা ....

সম্ভাব্য সমস্যার:

চিন্তা করার জন্য কমপক্ষে 2 টি সম্ভাব্য সমস্যা রয়েছে, এই চিন্তাভাবনার জন্য নীচে মন্তব্যকারীদের ধন্যবাদ:

  1. আপনার গন্তব্য ডিরেক্টরিটি দুর্নীতিগ্রস্থ হতে পারে, পরবর্তী সময়ে অ্যাক্সেসযোগ্য স্থানে, ভুল টাইপ করা ইত্যাদি mvএখনও ফাইলগুলিকে সেখানে স্থানান্তরিত করবে! এখানে সাবধান ...
  2. যদি -tবিকল্পটি ( --target-directory) অনুপস্থিত থাকে এবং গন্তব্য ফোল্ডারটি আসলে একটি ফাইল হয় তবে আপনি একটি ফাইল সরিয়ে ফেলবেন এবং বাকী অংশে ব্যর্থ হবেন। mv2 টি ব্যবহার করে: গন্তব্যস্থলে উত্সটির নাম পরিবর্তন করুন বা উত্সটি ডিরেক্টরিতে সরান । আবার সাবধান ...

2
শুধু find . -maxdepth 1 -type f -exec mv -t test {} +কি করবে না ?
মুড়ু

@ মুরু: এর জন্য ধন্যবাদ, আমি বহিরাগত -name...টুকরোয় ছাঁটাই করেছি তবে আমি xargsজায়গা ছেড়ে চলে এসেছি ।
এন্ড্রু .45

2
আমি জানি না ... যদিও কমান্ডটি স্পষ্টতই ঠিক যেমন এটি স্থির হয়েছে ঠিক ততই আমি একটি সম্পূর্ণ পদক্ষেপকে কিছুটা ত্রুটি-প্রবণ বলে বিবেচনা করব। (যদি আপনি, উদাহরণস্বরূপ, -tপতাকাটি অন্তর্ভুক্ত করতে ভুলে যান তবে আমার কি মনে হয় যে সমস্ত ফাইলগুলি একটি একক ফাইল হিসাবে "সরানো" হবে test, যার ফলে একটি বাদে আপনার সমস্ত ফাইলই ক্ষতিগ্রস্ত হবে)) আমি মনে করি আমি এর rsyncপরে অনুসরণ করতে পছন্দ করব , সব ঠিকঠাক থাকলে, ক rm। তবে, আমি এমন পরিস্থিতিগুলি কল্পনা করতে পারি যেখানে এই জাতীয় চেকটি স্বয়ংক্রিয় করা যায় না।
জোস

@ জোস: ধন্যবাদ, আমি এই সম্ভাবনাটি বর্ণনা করে একটি ফুটার নোট যুক্ত করেছি। rsync উত্তর হিসাবে লেখা একটি উদাহরণ দেখতে ভাল লাগছে?
এন্ড্রু .45

লিনাক্স অত্যন্ত দীর্ঘ আর্গুমেন্টের তালিকা সমর্থন করে, তাই আপনি সম্ভবত এটি করতে পারেন mv dir1/* dir2, এবং find -execযদি কোনও সমস্যা হয় তবে কেবলমাত্র অবলম্বন করুন বা আপনার গ্লোবের সাথে ফোল্ডারগুলির সাথে ম্যাচগুলি এড়াতে হবে কিনা। (যদিও আপনার নামকরণের কনভেনশনগুলির উপর নির্ভর করে, প্রায়শই *.*বেশিরভাগ ফাইলের সাথে মিল থাকে তবে বেশিরভাগ ডিরেক্টরি নয়, যেহেতু এটি .extensionফাইলগুলির মধ্যে থাকা সাধারণ .এবং ডিরেক্টরিতে নাম না পাওয়া সাধারণ )
পিটার কর্ডেস

4

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

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

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

    যদি এটি একই পার্টিশনে থাকে তবে কমান্ডটি ফাইল-সিস্টেম সূচীতে কেবলমাত্র পয়েন্টার পরিবর্তন করবে। যদি তা না হয় তবে ডুয়াল অপারেশন হবে (অনুলিপি করুন এবং মুছুন)। ব্যয়বহুল হবে।

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

  • কোনও একক প্যাকেজ বা কয়েকটি প্যাকেজ তৈরি করুন, যেমন / কম সংকোচনের সাথে জিপ। আপনি যখন এটি অনুলিপি করবেন, এটি দ্রুত হবে, সুতরাং ডিএমএকে তার কাজটি করতে দিন ।

3

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

এমসি কমান্ডার 2-ফলক দেখুন

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

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


0

আমি কিছুটা অনুরূপ সমস্যার মুখোমুখি হয়েছি - আমি আমার RAID সেটআপটি পরীক্ষা করছিলাম এবং বিশাল স্থানান্তরগুলি (যেমন 100,000+ ফাইল এবং একবারে 1-2 টিবি ডেটা) করার সময় মনে হয় স্থানান্তরগুলি মোটামুটি দ্রুত শুরু হয় - বলুন lets 200MB / সেকেন্ড, তারপরে দ্রুত যুক্তিসঙ্গত মালভূমিতে ~ 90-120MB / সেকেন্ডে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে কাটবে। তারপরে ২০-৩০ মিনিটের পরে অপারেশনটি আস্তে আস্তে অনেক কম মালভূমিতে to 30-40MB / সেকেন্ডে নামতে শুরু করে, ছোট ফাইলগুলির সাথে লেনদেন করার সময় আরও খারাপ হয় - 15 ঘন্টার কাছাকাছি 4-5 ঘন্টা অপারেশন নেওয়া।

আমি নির্ণয়ের চেষ্টা করতে কিছু সময় ব্যয় করেছি - যেমন ড্রাইভের ত্রুটিগুলি possible বিভিন্ন সরঞ্জাম - কমান্ড লাইন, নটিলাস চেষ্টা করেও আমি খুব বড় অনুলিপি অপারেশনের জন্য একটি শালীন থ্রুপুট বজায় রাখতে পারিনি।

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

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