সমস্ত লুকানো ফাইলগুলির জন্য আমার কীভাবে গ্লোব করা উচিত?


22

আমি chownকোনও ডিরেক্টরিতে লুকানো ফাইলগুলিতে কিছু পদক্ষেপ (বলি ) করতে চাই।

আমি জানি যে এই .*হল না একটি ভাল ধারণা কারণ এটি বর্তমান পাবেন .এবং পিতা বা মাতা ..ডিরেক্টরি (আমি জানি যে rmকাজ করার ব্যর্থ হবে .এবং ..কিন্তু সহ অন্যান্য আদেশ, chownএবং chmod, সুখে প্রভাবী হবে)

তবে আমার সমস্ত লুকানো ফাইলের আলাদা আলাদা নাম!

বাদ দিয়ে .এবং কীভাবে সমস্ত লুকানো ফাইলগুলির জন্য আমি গ্লোব করব ..?

উত্তর:


20

আপনি নিম্নলিখিত extglobপ্যাটার্ন ব্যবহার করতে পারেন :

.@(!(.|))
  • ..প্রথমে একটি আক্ষরিক সাথে মেলে

  • @()এটি একটি extglobনিদর্শন, এটি অভ্যন্তরের কোনও নিদর্শনগুলির সাথে মিলে যাবে, কারণ এর ভিতরে আমাদের কেবল একটি প্যাটার্ন রয়েছে, এটি এটি বেছে নেবে

  • !(.|)হ'ল অন্য extglobপ্যাটার্ন (নেস্টেড), যা কোনও বা একটির সাথে কোনও ফাইলের সাথে মেলে না .; আমরা মিল খেতে হিসাবে .ইতিমধ্যে শুরুতে, এই পুরো প্যাটার্ন দিয়ে শুরু সব ফাইল ম্যাচ হবে .ব্যতীত .এবং ..

extglobbashউবুন্টুতে ডিফল্টরূপে ইন্টারেক্টিভ সেশনগুলিতে সক্ষম করা হয় । যদি তা না হয় তবে প্রথমে এটি সক্ষম করুন:

shopt -s extglob

উদাহরণ:

$ echo .@(!(.|))
.bar .foo .spam

এটি স্পষ্টতই আমার সম্পর্কে শেখার দরকার একটি দুর্দান্ত বিষয়! শেখানোর জন্য আপনাকে ধন্যবাদ
Zanna

@ জান্না গ্ল্যাড আমি সাহায্য করতে পারি :)
হিমাইল

2
এর উদ্দেশ্য কী @()? সরল .!(.|)মনে হয় অভিন্নভাবে কাজ করে।
কাইল স্ট্র্যান্ড

1
আমি জানি যে এটি পুরানো, তবে আমার কাছে @ কাইলস্ট্র্যান্ডের মতো প্রশ্ন রয়েছে। আমার পরীক্ষায়, !(.|)একই কাজ করে। @()এই প্রসঙ্গে পিছনে কোন উদ্দেশ্য আছে ?
ধানের ল্যান্ডাউ

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

20
 GLOBIGNORE=".:.."

লুকাতে এবং .. ডিরেক্টরি। এটি dotglobবিকল্পটিও সেট করে : *লুকানো এবং গোপনীয় নয় এমন দুটি ফাইলই মিলে।

আপনি করতে পারেন

shopt -s dotglob

গিলস :)


9

আপনি findএখানে একটি কমান্ড ব্যবহার করতে পারেন । যেমন মত কিছু

find -type f -name ".*" -exec chmod 775 {} \;

এটি লুকানো ফাইলগুলি এবং অনুমতিগুলির পরিবর্তনের সন্ধান করবে


@Gerrit দ্বারা মন্তব্য অন্তর্ভুক্ত করতে সম্পাদনা করুন:

find -type f -maxdepth 1 -name ".*" -exec chmod 775 {} \;

এটি পুনরাবৃত্তভাবে অনুসন্ধানের পরিবর্তে অনুসন্ধানের শীর্ষস্থানীয় ডিরেক্টরিকে সীমাবদ্ধ করবে।


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