একই আকারের ফাইলগুলি মুছুন তবে সবসময় একটি ফাইল রাখুন?


1

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

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

find . -type f -printf "%s %p\n" | grep "zip" | sort -n | uniq -d --check-chars=10

-rw-r--r--  1 root root 2550472 Apr 22 14:40 save_2016-04-22-14_40_01.zip
-rw-r--r--  1 root root 2550472 Apr 22 14:45 save_2016-04-22-14_45_01.zip
-rw-r--r--  1 root root 2550472 Apr 22 14:50 save_2016-04-22-14_50_01.zip
-rw-r--r--  1 root root 2550472 Apr 22 14:55 save_2016-04-22-14_55_01.zip
-rw-r--r--  1 root root 2550472 Apr 22 15:00 save_2016-04-22-15_00_01.zip
-rw-r--r--  1 root root 2550472 Apr 22 15:05 save_2016-04-22-15_05_01.zip
-rw-r--r--  1 root root 2550472 Apr 22 15:10 save_2016-04-22-15_10_01.zip
-rw-r--r--  1 root root 2550472 Apr 22 15:15 save_2016-04-22-15_15_01.zip
-rw-r--r--  1 root root 2550472 Apr 22 15:20 save_2016-04-22-15_20_01.zip
-rw-r--r--  1 root root 2550472 Apr 22 15:25 save_2016-04-22-15_25_01.zip
-rw-r--r--  1 root root 2550472 Apr 22 15:30 save_2016-04-22-15_30_01.zip
-rw-r--r--  1 root root 2550472 Apr 22 15:35 save_2016-04-22-15_35_01.zip
-rw-r--r--  1 root root 2550472 Apr 22 15:40 save_2016-04-22-15_40_01.zip
-rw-r--r--  1 root root 2550472 Apr 22 15:45 save_2016-04-22-15_45_01.zip
-rw-r--r--  1 root root 2550472 Apr 22 15:50 save_2016-04-22-15_50_01.zip
-rw-r--r--  1 root root 2550472 Apr 22 15:55 save_2016-04-22-15_55_01.zip #keep
-rw-r--r--  1 root root 2556836 Apr 22 16:00 save_2016-04-22-16_00_01.zip
-rw-r--r--  1 root root 2556836 Apr 22 16:05 save_2016-04-22-16_05_01.zip #keep
-rw-r--r--  1 root root 2586848 Apr 22 16:10 save_2016-04-22-16_10_01.zip
-rw-r--r--  1 root root 2586848 Apr 22 16:15 save_2016-04-22-16_15_01.zip
-rw-r--r--  1 root root 2586848 Apr 22 16:20 save_2016-04-22-16_20_01.zip #keep
-rw-r--r--  1 root root 2590213 Apr 22 16:25 save_2016-04-22-16_25_01.zip
-rw-r--r--  1 root root 2590213 Apr 22 16:30 save_2016-04-22-16_30_01.zip
-rw-r--r--  1 root root 2590213 Apr 22 16:35 save_2016-04-22-16_35_01.zip
-rw-r--r--  1 root root 2590213 Apr 22 16:40 save_2016-04-22-16_40_01.zip
-rw-r--r--  1 root root 2590213 Apr 22 16:45 save_2016-04-22-16_45_01.zip #keep

উপরের কমান্ডটি এরকম কিছু মুদ্রণ করে:

2590215 ./save_2016-04-25-14_20_01.zip
2590216 ./save_2016-04-25-14_00_01.zip
2590259 ./save_2016-05-17-13_10_01.zip
2590278 ./save_2016-05-17-13_35_01.zip
2590286 ./save_2016-05-17-13_50_01.zip
2590291 ./save_2016-05-17-14_25_01.zip
2590294 ./save_2016-05-17-13_55_01.zip

কোন ধারনা? আমার আরও সফ্টওয়্যার ইনস্টল করার কোনও অধিকার নেই, কেবলমাত্র কমান্ডগুলি উবুন্টু সার্ভার 14.04.2 এলটিএস হিসাবে উপলব্ধ।

উত্তর:


1

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

এর -tপ্যারামিটারটি একবার দেখুন mv। আপনি গন্তব্য নির্দিষ্ট করতে এটি ব্যবহার করতে পারেন এবং তারপরে এমভিতে একাধিক ফাইল পাইপ করতে পারেন।


আমি আমার প্রশ্নটি সম্পাদনা করেছি, তবে আপনি যেমন বলেছিলেন আমি ফাইলসাইজ থেকে মুক্তি পেতে পারি এবং সেই তালিকাতে পাইপের চেয়েmv
কোডব্রেয়ার

হ্যাঁ. কমান্ডটি হবে | grep -o "./.*"(ধরে নিলে আপনার ফাইলের নামটি কখনই "/" থাকবে না)
মাসগো

আমি এটি যুক্ত করেছি | awk '{ print $2 }' | xargs mv -t final/এবং এটি কাজ করেছে। ধন্যবাদ।
কোডব্রেয়ার

অ্যাজকও ঠিক আছে, আমি এর সাথে খুব বেশি পরিচিত নই।
মাসগো

গ্রেপের জন্য ধন্যবাদ - আমি সর্বদা বিভাজনকারী সারিগুলির জন্য গ্রেপ এবং বিভাজনকারী কলামগুলির জন্য awk ব্যবহার করি। খুব সহজ এবং শক্তিশালী।
কোডব্রেয়ার

0

এটি অত্যাবশ্যক নাও হতে পারে তবে আপনার সচেতন হওয়া উচিত যে দুটি জিপ আলাদা আলাদা হতে পারে এমনকি যদি তাদের আকারের বাইটগুলিও সমান হয়। আপনি যদি এটির ঝুঁকিটি থেকে মুক্তি পেতে চান তবে আপনি ফাইলগুলির এমডি 5sum পরীক্ষা করতে পারেন। কেবলমাত্র অনুলিপি মুছতে এটি 100% গ্যারান্টি নয় তবে আপনার সম্ভাবনা আরও ভাল।

মুছে ফেলার জন্য xargs এ ফাইল নাম পাঠানোর জন্য awk ব্যবহার করে এটি করার একটি উপায় (আমার ফাইলগুলির সাথে নমুনা):

$ ls -l [a-d][1-3].txt
-rw-rw-r-- 1 lx lx 2 May 27 16:39 a1.txt
-rw-rw-r-- 1 lx lx 3 May 27 16:39 a2.txt
-rw-rw-r-- 1 lx lx 4 May 27 16:39 a3.txt
-rw-rw-r-- 1 lx lx 2 May 27 16:39 b1.txt
-rw-rw-r-- 1 lx lx 3 May 27 16:39 b2.txt
-rw-rw-r-- 1 lx lx 4 May 27 16:39 b3.txt
-rw-rw-r-- 1 lx lx 2 May 27 16:39 c1.txt
-rw-rw-r-- 1 lx lx 3 May 27 16:39 c2.txt
-rw-rw-r-- 1 lx lx 4 May 27 16:39 c3.txt
-rw-rw-r-- 1 lx lx 2 May 27 16:39 d1.txt
-rw-rw-r-- 1 lx lx 3 May 27 16:39 d2.txt
-rw-rw-r-- 1 lx lx 4 May 27 16:39 d3.txt
$ md5sum [a-d][1-3].txt | sort -k1 | awk '$1==prevsum {print $2}; {prevsum=$1}' | xargs  rm
$ ls -l [a-d][1-3].txt
-rw-rw-r-- 1 lx lx 2 May 27 16:39 a1.txt
-rw-rw-r-- 1 lx lx 3 May 27 16:39 a2.txt
-rw-rw-r-- 1 lx lx 4 May 27 16:39 a3.txt

যেহেতু আমি ফাইলের আকারগুলির বিষয়ে চিন্তা করি না এবং আমি ফাইলগুলির নামকরণের ধরণটি জানি, তাই আমাকে সন্ধানও ব্যবহার করতে হবে না।


হ্যাঁ এটি আরও ভাল হবে তবে আমি জানি যে আমার ফাইলগুলি বাইট আকারে সর্বদা আলাদা। এটি কারণ প্রতিটি জিপটিতে একটি নির্দিষ্ট ফাইল্ট্রি থাকে এবং 1 বা 2 টি ফাইল বড় হয় - এটাই। আমি চেয়েছিলাম এটি যত তাড়াতাড়ি সম্ভব হয়ে উঠুক, কারণ মেশিনটি তেমন শক্তিশালী নয়। এমনকি এমডি 5 চেকিংয়েও অনেক বেশি সময় লাগবে;)
কোডব্রায়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.