কীভাবে 'ডিরেক্টরি' রয়েছে তা বর্তমান ডিরেক্টরিটি ফেরত পাবে না


11

আমি বর্তমানে findএকটি নির্দিষ্ট ডিরেক্টরিতে একটি নির্দিষ্ট প্যাটার্নের সাথে মেলে সমস্ত ফাইল এবং ফোল্ডার কাঠামোর (এবং অনুলিপি করার) চেষ্টা করছি এবং আমি প্রায় সেখানে রয়েছি!

বিশেষত, আমি অবশ্যই একটি নির্দিষ্ট পাথ থেকে '_' অক্ষর দিয়ে ভিক্ষা না করে সমস্ত ফোল্ডারগুলি পুনরাবৃত্তভাবে অনুলিপি করতে চাই।

find /source/path/with/directories -maxdepth 1 -type d ! -name _\* -exec cp -R {} /destination/path \;

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

কারও ইঙ্গিত আছে কেন?

ধন্যবাদ,

প্যাসকেল


উত্তর:


14

findমূল পথটি ফেরত দেয় কারণ এটি আপনার মানদণ্ডের সাথে মেলে — যেমন এটি একটি ডিরেক্টরি, এবং এটি দিয়ে শুরু হয় না _

আপনি খুঁজছেন -mindepth 1, আমার সন্দেহ:

$ cd /tmp
$ mkdir a
$ touch a/b
$ mkdir a/c
$ touch a/c/d
$ find a
a
a/b
a/c
a/c/d
$ find a -mindepth 1
a/b
a/c
a/c/d

তথ্যসূত্র: ম্যানপেজটি সন্ধান করুন


অসাধারণ! আমি যেমন চাই তেমন কাজ করে। আমি এটি যোগ করে কাজ ছিল! 'ফাইল' নাম দিন তবে এটি আমার কাছে খারাপ লাগছিল ...
পিনপিন

0

থেকে পরিবর্তন করুন:

find /source/path/with/directories ...

প্রতি:

(shopt -s dotglob; find /source/path/with/directories/* ... )

এই উপায় /source/path/with/directoriesঅন্তর্ভুক্ত করা হবে না।

shopt -s dotglobযাতে *এছাড়াও ফাইল ও ডিরেক্টরিগুলি একটি দিয়ে শুরু ম্যাচ হবে .(লুকানো ফাইল, ডিরেক্টরি)।

এবং পুরো জিনিসটি কেবল সাব-শেলের মধ্যে (...)সীমাবদ্ধ করার জন্য একটি সাব-শেলের সাথে আবৃত থাকে shopt, অন্যথায় আপনাকে পরে এটি পূর্বাবস্থায় ফিরিয়ে নিতে হবে shopt -u dotglob


যে ডিরেক্টরি এন্ট্রিগুলি দিয়ে শুরু হয় তাতে ব্যর্থ হবে ..*হয় না চেষ্টা করুন , অথবা আপনি একটি সম্পূর্ণ লোটার সাথে অন্য কোনও জিনিস মেলে যাবেন যা আপনি কখনও করেন নি। ;-)
zigg

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