find . -type f -not \( -name '*.gz' -or -name '*[~#]' \) -exec sh -c 'gzip -c "{}" > "{}.gz"' \;
-name '*.txt -or -name '*.html
কিছু ফাইল (ইতিমধ্যে সঙ্কুচিত, ব্যাকআপ এবং অস্থায়ী ফাইলগুলি) বাদ দিয়ে এখনকার পরিবর্তে আপনি কী সংকোচন করতে চান তা অন্তর্ভুক্ত করতে আপনি সহজেই এটিকে ঘুরিয়ে দিতে পারেন ।
ফাইল নেমে স্পেস হ্যান্ডেল করে ঠিক খুব ভাল।
পরিবর্তন gzip
করার জন্য echo gzip
পরীক্ষার জন্য। বা সমস্ত অংশ একসাথে বাদ দিন।
সম্পাদনা: ওহ, আমি উল্লেখ করতে ভুলে গেছি যে এটি <target>.gz
ইতিমধ্যে বিদ্যমান কিনা তা পরীক্ষা করে না । এটি সমস্যা হতে পারে বা নাও হতে পারে।
সম্পাদনা 2: ঠিক আছে, আমরা এখানে এমন কিছু যাব যা বিদ্যমান ফাইলের জন্য পরীক্ষা করে। যদি তা চাওয়া হতে পারে। অনলাইন-নেসকে ক্ষমা করুন।
while read file; do if [ ! -f "$file.gz" ]; then echo "Compressing $file"; gzip -c "$file" > "$file.gz"; else echo "Not overwriting $file.gz"; fi done < <(find . -type f -not \( -name '*.gz' -or -name '*[~#]' \))
আমার- find
ফু সম্ভবত এটি যা হতে পারে তা নয়, এটি খুব ভালভাবেই সরাসরি খুঁজে পাওয়া যায়।
*.*
এls
?