বিভিন্ন ডিরেক্টরি মধ্যে সাধারণ ফাইলের সেট খুঁজে?


9

আমি ড্রুপাল থিমগুলির ডিরেক্টরি তুলনা করতে দেখছি। একটি ড্রুপাল থিম একটি ডিরেক্টরি যা বেশ কয়েকটি ফাইলের সমন্বয়ে গঠিত এবং আমি কোনটি প্রয়োজনীয় তা নির্ধারণের চেষ্টা করছি। উদাহরণস্বরূপ, তাদের সবার কাছে একটি ফাইল template.phpবা ডাকা হতে পারে page.tpl.php

বেশ কয়েকটি ডিরেক্টরিতে আমি কীভাবে সমস্ত সাধারণ ফাইলের সেট খুঁজে পেতে পারি? আমার ক্ষেত্রে, সমস্ত 'একই' ফাইল (একই নামের ফাইলগুলি) একই স্তরের ডিরেক্টরিতে থাকতে চলেছে।


Ukuug.org/newsletter/10.4 (যদিও তারা শেল-গল্ফ-ইশ) এর 'শেল ধাঁধা' বিভাগে কিছু উত্তর রয়েছে ।
জেমস ইয়ংম্যান

উত্তর:


7

সমস্ত ডিরেক্টরিতে সাধারণ ফাইলগুলির সমস্ত নাম (পাথ নয়) তালিকাবদ্ধ করুন।

dirs=( "A dir" "B dir" "C dir" "D dir" )
find "${dirs[@]}" -maxdepth 1 -type f -name "*" -printf '%f\n' |
  sort | uniq -c | sed -n "s/^ *${#dirs[@]} //p"

অথবা এটিকে স্ক্রিপ্ট-ফাইল বা ফাংশন হিসাবে ডাইরেক্টরিগুলি পরামিতি হিসাবে কল করুন।

find "$@" -maxdepth 1 -type f -name "*" -printf '%f\n' |
  sort | uniq -c | sed -n "s/^ *$# //p"

1

আপনি প্রদর্শিত ডিরেক্টরিগুলির সংখ্যা অনুসারে বাছাই করা নামেরগুলির তালিকা প্রদর্শন করতে পারেন।

find */ |              # traverse all the template directories
sort -t / -k 2 |       # sort, ignoring the first field
tr '/' '\t' |          # turn / into tabs
uniq -f 1 -c |         # count duplicates, ignoring the first field
tr '\t' '/' |          # turn tabs back into /
sort -t / -s -k 1n     # sort by the number of occurrences

0

সঙ্গে মেশানো দুই ডিরেক্টরি তুলনা করতে পারবেন, এবং দেখুন যা ফাইল এক উপস্থিত হয়, এবং অন্যান্য এবং তদ্বিপরীত। এটি সাধারণ ফাইলগুলির মধ্যে পার্থক্যও প্রদর্শন করতে পারে।


0

3 টি ডিরেক্টরিতে, তার মধ্যে একটি বর্তমান এবং দুটি 'ক' এবং 'বি' এর জন্য আপনি পরীক্ষাকে এভাবে চেইন করতে পারেন:

ls a/$(ls b/$(ls *.php) 2>/dev/null) 2>/dev/null

যদি ফাইলগুলির একটি সাধারণ প্যাটার্ন থাকে (যেমন। php) এবং ফাইলের নামগুলিতে শ্বেত স্পেস না থাকে।

lsস্ক্রিপ্টগুলিতে ব্যবহার করা সর্বদা সমস্যাযুক্ত এবং আমি সাধারণত এটি ব্যবহার থেকে নিরুৎসাহিত করি, তবে ডিরেক্টরিটি যেখানে অনুসন্ধান শুরু হয় সেখানে সমস্ত ফাইল সম্পর্কে যদি আপনার একটি পর্যালোচনা থাকে এবং এতে সাদা অংশ থাকে না বা "*" বা "এর মতো বিশেষ অক্ষর থাকে না? "," <"বা" | "এটি ব্যবহার করার জন্য এটি সংরক্ষণ করা উচিত।

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