+ xargs - একটি সাবডির থেকে অন্যটিতে ফাইল স্থানান্তর করুন


1

আমার ফোল্ডার কাঠামোটি এরকম:

/volume1
  /photoTest
    /folderA
      /@eaDir
      /eaDir_tmp 
    /folderB
      /@eaDir
      /eaDir_tmp 
    /folder with space
      /@eaDir
      /eaDir_tmp 

আমি যা করার চেষ্টা করছি তা হ'ল প্রতিটি eaDir_tmpথেকে নিজ নিজ @eaDirফোল্ডারে ফাইলগুলি অনুলিপি করা ।

আমি এটি দিয়ে যেতে সক্ষম হয়েছি:

for a in $(find /volume1/photoTest -type d -name eaDir_tmp); do rsync -vhar --chmod=a+rwx $a/ $a/../@eaDir; done;

যতক্ষণ না আমি ফোল্ডারে স্পেস দিয়ে আঘাত করব। উপরের স্ক্রিপ্টটি কেবল ক্রেপস আউট করে।

প্রচুর গুগল করার পরেও চেষ্টা করেছি:

find /volume1/photoTest -type d -name eaDir_tmp -print0 | xargs -0 rsync -vhra --chmod=a+rwx {} {}/../@eaDir

এই কমান্ডের ড্রাই ড্রাই ইস্যু ছাড়াই চলে runs তবে প্রকৃত রান এটি মুদ্রণের পরে আটকে যায়।

sending incremental file list
@eaDir/subdir1/

এবং এটি আটকে যায়।

ps -elf | grep rsyncউপর rsync প্রক্রিয়ার গুচ্ছ দেখায় waitএবং poll_sরাষ্ট্র।

কারও কি ধারণা আছে কি হচ্ছে? এবং সমাধান কি হতে পারে?

আপডেট : মন্তব্যের ভিত্তিতে কিছু স্পষ্টতা:

  • মুভ বা কপি? আচ্ছা চূড়ান্ত লক্ষ্য "সরানো"। তবে আমি কীভাবে অনুলিপি করতে হয় তা জানতে চাই।
  • কী চলছে - হ্যাঁ আমি জানতে চাইব কী চলছে এবং আমার আদেশগুলি কেন আশানুরূপ কাজ করছে না। আমি নিয়মিত লিনাক্স ব্যবহারকারী না হওয়ায় আমি কিছু শেখার আশা করছি।
  • সমাধান কি হতে পারে? ভাল, আমি এটি জানতে চাই। :)
  • eaDirফোল্ডারের ভিতরে কী আছে ? আরও ফোল্ডার এবং তারপরে কিছু ফাইল। এটি যদি সহায়তা করে তবে পুরো জিনিসটি এটি দিয়ে শুরু হয়েছিল: https://github.com/mbrrg/synology-thumbgen । লেখক বিদ্যমান @eaDirফোল্ডারগুলি মুছে ফেলা এবং কেবল নতুন নামকরণের পরামর্শ দেন eaDir_tmp। তবে আমি এটি করতে পারি না কারণ বিদ্যমান ফোল্ডারে এমন ফাইল রয়েছে যা আমি রাখতে চাই। আমি ব্যাখ্যা করতে পারি তবে আমি মনে করি যে প্রশ্নটি আরও জঞ্জাল করবে।
  • execdirকাজ করে - এই অর্থে এটি অবৈধ যুক্তি বা কোনও ত্রুটি নষ্ট করে না। তবে এটি লক্ষ্য অর্জন করে না - যেমন ফাইলগুলি সঠিকভাবে অনুলিপি করে।
  • আমার কত ধনী find? এটি আমার সিএনোলজি এনএএস-এর ভিতরে রয়েছে, যা আমার মনে হয় ব্যাসিবক্স চলছে? যদিও নিশ্চিত না। আমি কীভাবে সন্ধান করব?
  • যদি গন্তব্য ফাইলগুলি বিদ্যমান থাকে তবে উত্স আরও নতুন হলে আমি এটি ওভাররাইট করতে চাই। অন্যথায় না।

আপনার প্রশ্ন "কি হচ্ছে?" বা "সমাধান কী হতে পারে?" এগুলি বিভিন্ন প্রশ্ন। শিরোনামটি "সরান" বলে, প্রশ্ন সংস্থাটি "অনুলিপি" বলে। আপনার মন আপ করুন। ডিরেক্টরি অধীনে eaDir_tmpকি উপ- ডিরেক্টরি আছে? যদি তা হয় তবে আপনি তাদের এবং তাদের সামগ্রীর সাথে কী করতে চান? যদি ইতিমধ্যে @eaDirএকই নামযুক্ত কোনও ফাইল অনুলিপি করা হয় তবে কী হবে? আপনি কী বলতে পারবেন বিকল্পগুলির মধ্যে কতটা সমৃদ্ধ find? এটি -execdirকী পজিক্স বিকল্পটি বোঝে ?
কামিল ম্যাকিয়েরোভস্কি

@ কামিলম্যাসিওরওস্কি আপনার প্রশ্নের উত্তর যুক্ত করেছে। আশা করি এইটি কাজ করবে.
মিচিফ

এটি লিনাক্স এসই-এ পোস্ট করেছেন: unix.stackexchange.com/Qestions/83711/…
মিঃচিফ

উত্তর:


0

rsyncআটকা পড়ে না কেন নিশ্চিত । তবে আমি 2 টি কমান্ড ব্যবহার করে কিছু অগ্রগতি করতে সক্ষম হয়েছি:

প্রথমে এর মাধ্যমে সমস্ত ফাইল অনুলিপি করুন:

find /volume1/photo -type d -name eaDir_tmp -exec cp -a -t {}/../@eaDir {}/. \;

দ্বিতীয়ত , ফাইলের অনুমতিগুলি পরিবর্তন করুন:

find /volume1/photo -type d -name @eaDir -exec chmod 777 {} -R \;

কেবল এই আনাড়ি এবং ধীরগতি নয়, তবে এটি এমএস-ডস নিয়ে কাজ করছি বলে মনে হয়। লিনাক্স গুরুরা কোথায়?

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