আমি কীভাবে পুনরাবৃত্তভাবে একটি ডিরেক্টরিতে সমস্ত পিডিএফ ফাইল অনুলিপি করতে পারি (এবং এটি উপ-ডিরেক্টরিগুলি) একটি একক আউটপুট ডিরেক্টরিতে?


20

আমার কাছে একটি ডিরেক্টরি রয়েছে যাতে প্রচুর পরিমাণে পিডিএফ ফাইল থাকে, যার কয়েকটি সাব-ডিরেক্টরিতে থাকে (যা বেশ কয়েকটি স্তর গভীরতর করতে পারে)। আমি মিলে থাকা সমস্ত ফাইলকে *.pdfনামের একক আউটপুট ফোল্ডারে স্থানান্তর করতে চাই papers

কিভাবে আমি এটি করতে পারব?


1
দুটি ফাইল আছে a/x.pdfএবং কীভাবে আপনি মামলাটি পরিচালনা করতে চান b/x.pdf?
কর্নেল আতঙ্ক

উত্তর:



30
  find /bunchopdfs -name "*.pdf" -exec mv {} /papers \;    

এখানে আমি একটি পরীক্ষা আছে

$ ls -R
.:
a  aaa bbb.pdf  pdfs

./a:
foo.pdf

./pdfs:

"Aaa bbb.pdf" ফাইলটি লক্ষ্য করুন।

$ find . -name "*pdf" -exec mv {} pdfs \;
$ ls -R
.:
a  pdfs

./a:

./pdfs:
aaa bbb.pdf  foo.pdf

সুন্দর! +1!
পেঙ্গুইন কোডার

"{}"শূন্যস্থান সম্বলিত ফাইলের নাম ব্যবহার করার জন্য আপনার উদ্ধৃতি দেওয়ার দরকার নেই ?
টেরডন

@ ইটারডন: আসলে, আপনি না (যদিও এই ধরণের সমস্যাটি আমাকে মাঝে মাঝে ধরা দেয়)। আপডেট উত্তর দেখুন।
রেডগ্রিটিব্রিক

4
find -print0 /directory/with/pdfs -iname "*.pdf" | xargs -0 mv -t /papers

(অন্য উত্তরের অনুরূপ তবে আমি পাইপ / এক্সার্গস / এমভি পছন্দ করি ... আমার জন্য আরও স্বজ্ঞাত)

এফওয়াইআই, আমি একাধিক ডিরেক্টরি এবং একাধিক পিডিএফ ফাইলগুলিতে সফলভাবে উপরের এক-লাইন স্ক্রিপ্টটি করেছি।


1
xargs "ফাইলের মধ্যে শূন্যস্থান" ইস্যু করে যা-এক্সেক না doesn't আপনি -print0নিজের অনুসন্ধানে এবং -0জার্গে যুক্ত করে কিছুটা মধ্যস্থতা করতে পারেন ।
ধনী হোমোলকা

@ রিচহমোলকা পরিবর্তিত উত্তর দেখুন। (টিপটির জন্য ধন্যবাদ। এটি সত্যিই দরকারী!)
ট্রেভর বয়েড স্মিথ

আপনি কি কখনও চেষ্টা করেছেন? দেখে মনে হচ্ছে আপনার সন্ধানের কমান্ডের শেষে "-প্রিন্ট0" যুক্ত করা দরকার
টলোলো

0

উইন্ডোজ কমান্ড লাইনের (সেমিডি.এক্সি) জন্য আপনি ব্যবহার করতে পারেন:

for /F "usebackq delims==" %j IN (`dir /s /b *.pdf`) do copy "%j" c:\target_dir

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

2
এটি এখনও দুর্দান্ত যে উইন্ডোজগুলিও এটি করতে পারে!
ভোরাক

0

আপনি যদি কেবল একটি ডিরেক্টরি গভীর অনুসন্ধান করেন তবে আপনি এটি করতে পারেন:

mkdir <destination>
mv */*.pdf <destination>

যেখানে <destination>কিছু ডিরেক্টরি বোঝায়। mvআপনার জন্য স্বয়ংক্রিয়ভাবে একটি ডিরেক্টরি তৈরি করবে না।

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