বর্তমান ডিরেক্টরি ব্রাউজ করুন এবং "lib" দিয়ে শুরু হওয়া ফাইলগুলি সন্ধান করুন এবং উপ-ডিরেক্টরিগুলি বাদ দিন


0

আমি "ডিরেক্টরি" দিয়ে শুরু করে বর্তমান ডিরেক্টরিতে ফাইলগুলি অনুসন্ধান করতে চাই। আমি সাব ডিরেক্টরিগুলি মুছে ফেলতে চাই।

আমি কমান্ড অনুসরণ করার চেষ্টা করছি, তবে এটি কোনও ফাইল দিচ্ছে না। নিম্নলিখিত আদেশে কিছু ভুল?

find -maxdepth 1 -name "lib*.*" -type "f"

ডস মনে করতে ভুলবেন না যে *.*সমান *। আপনি সম্ভবত নিজের ডিরেক্টরিতে যুক্ত করতে চাইবেন কেন আপনি মনে করেন যে বর্তমান ডিরেক্টরিটিতে libপ্রথমে ফাইলের নাম শুরু আছে এবং ডট ইন দিয়ে প্রথমে রয়েছে।
জেডিবিপি

উত্তর:


2

যেমনটি একটি মন্তব্যে উল্লিখিত হয়েছে, ইউনিক্সে, *.*অর্থ ফাইলের নাম অবশ্যই একটি পিরিয়ড ধারণ করে। যদি আপনার ফাইলের নামগুলিতে পিরিয়ড না থাকে তবে ব্যবহার করুন -name "lib*"; যেমন,

find . -maxdepth 1 -type f -name "lib*" -printf '%f\n'

1

আপনার উদাহরণটি আমার পক্ষে কাজ করে, যতক্ষণ না আমি প্রকৃতপক্ষে ডিরেক্টরিতে আছি:

$ cd /lib
$ find -maxdepth 1 -name "lib*.*" -type "f"
./libthread_db-1.0.so
./libfreebl3.so
./libnsl-2.12.so
./libnss_compat-2.12.so
./libcidn-2.12.so
./libdl-2.12.so
./libnss_hesiod-2.12.so
./libresolv-2.12.so
./libz.so.1.2.3
./libm-2.12.so
./libanl-2.12.so
./libpthread-2.12.so
./libutil-2.12.so
./libnss_dns-2.12.so
./libnss_files-2.12.so
./libcrypt-2.12.so
./libBrokenLocale-2.12.so
./libfreebl3.chk
./libnss_nisplus-2.12.so
./libSegFault.so
./libc-2.12.so
./librt-2.12.so
./libnss_nis-2.12.so

আমি অনুমান করছি আপনি অন্য ডিরেক্টরি থেকে আপনার আদেশটি জারি করেছেন। যে কোনও ক্ষেত্রে আপনি যে ডিরেক্টরিটি একটি প্রাথমিক পয়েন্ট হিসাবে ব্যবহার করতে চান তা নির্দিষ্ট করে দেওয়া আরও স্বাভাবিক eg

find /lib -maxdepth 1 -name "lib*.*" -type "f"

অন্যরা যেমন মন্তব্যগুলিতে মন্তব্য করেছে, *.*ফাইলের নামটিতে অবশ্যই একটি থাকতে হবে। ' (যেমনটি ঘটে যদি লাইব্রেরি সম্বলিত ডিরেক্টরিতে সন্ধান করা হয় তবে সম্ভবত তাদের সকলের মধ্যে একটি বিন্দু থাকবে)

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