কেবলমাত্র ফাইলগুলি দিয়ে শুরু করুন starting (গোপন)


11

আমি কেবল লুকানো ফাইলগুলি প্রদর্শনের চেষ্টা করেছি তবে কীভাবে এটি করতে হয় তা জানি না।

এটি কাজ করছে (তবে অন্যান্য জায়গাগুলিতেও বিন্দু মিলে)

ls -la | grep '\.'

যোগ করার চেষ্টা করছিল ^কিন্তু সমাধানটি খুঁজে পেল না।


1
পার্সিং lsকখনই একটি দুর্দান্ত ধারণা নয়, তবে আপনি ^ম্যাচ শুরুর বোঝার জন্য অ্যাঙ্কর ব্যবহার করলে আপনি যা চেষ্টা করেছিলেন তা কাজ করবে । ls -la | grep '^\.'
ডেভনুল

3
না এটি হবে না, ফাইলের নামটি -l পতাকা সহ লাইনের শুরু নয়। ls -la | awk '$9 ~ /^\./'ইচ্ছাশক্তি.
ইউনিক্স

উত্তর:



5
find . -type f -name '\.*' -print 

ডিরেক্টরি হায়ারার্কিতে প্রতিটি লুকানো ফাইলের তালিকা তৈরি করতে চাইলে অবশ্যই কাজ করতে হবে।


2

আপনি যদি lsআউটপুট পার্স করতে চান তবে আপনাকে অবশ্যই ^রেইগেক্সের শুরুতে যুক্ত করতে হবে এবং -lবিকল্পটি ব্যবহার করবেন না । -lপ্রতিটি লাইন আউটপুট ফাইল বা ফোল্ডারের অনুমতি সম্পর্কিত তথ্য দিয়ে শুরু করে, ফাইল বা ফোল্ডারের নাম নয় Using সুতরাং আপনার এই মত ব্যবহার করা উচিত:

ls -Ad | grep '^\.'

অথবা আপনি printfব্যাশ বিল্টিন দিয়ে করতে পারেন :

printf "%s\n" .*

আপনি যদি ব্যবহার করেন তবে আপনি এটি ব্যবহার zshকরতে পারেন:

print -l .*

1

এখানে লুকানো ফাইলগুলি খুঁজে পাওয়ার আরও দুটি উপায় রয়েছে।

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

অথবা

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

ডিরেক্টরি ট্রিটিতে -maxdepthআপনি কতদূর অনুসন্ধান করতে চান তা নির্দিষ্ট করতে ব্যবহার করুন ।


1

ফ্লুপের উত্তরের একটি উন্নতি :

ls -lad .[!.]* ..?*

এটি এমন সমস্ত ফাইলের তালিকা তৈরি করবে যার নাম বিন্দু দিয়ে শুরু হয় এবং এটিও .নয় ..

মনে রাখবেন যদি আপনি নল থেকে আউটপুট চান lsকরতে grep(যা, devnull দ্বারা সরু আউট হিসাবে , একটি ভাল ধারণা না হয়), নিশ্চিত করুন যে আপনি ব্যবহার করছেন \lsবা command lsযদি কারণ lsওরফে অন্য আপনি রঙ্গিন আউটপুট দেখানোর জন্য (যেমন উদাহরণস্বরূপ ডেবিয়ান রয়েছে) , এর আউটপুটটিতে রঙিন আউটপুট তৈরি করতে এএনএসআই অব্যাহতি সিকোয়েন্স রয়েছে, যা grepরেখার শুরুতে যদি এর প্যাটার্নটি নোঙ্গর করা থাকে তবে আপনার ট্রিপ আপ করবে ।


1
আপনি ব্যবহার করতে পারেন -A(এর পরিবর্তে -a) উপেক্ষা করার ., ..
ওজেফোর্ড

@ ওজেএফর্ড + ডিরেক্টরিতে নেমে -Aআসা -aডিরেক্টরিগুলির চেয়ে পৃথক ls, তবে -dকার্যকরভাবে কমান্ড লাইনে উল্লিখিত নামগুলির জন্য উভয়ই (সমানভাবে) উপেক্ষা এবং অকেজো । এছাড়াও যদি বিকল্প lsহয় --color=auto তবে পাইপিং ঠিক আছে; কেবল --color=alwaysবা --colorসমস্যা সৃষ্টি করে।
dave_thompson_085

0

Val0x00ff এর সমাধানটি সত্যিই ভাল তবে এটি লুকানো ডিরেক্টরিগুলি ভুলে যায়।

আপনি যদি লুকানো ফাইল এবং লুকানো ডিরেক্টরিগুলি চান তবে । এবং .. :

find -maxdepth 1 -regex '\./\..+' -printf "%P\n"

আপনার পরামর্শটি ভিএমওয়্যার ইএসএক্সআইতে ব্যর্থ হয়েছে (কোনও ফাইল এবং কোনও ডিরেক্টরিের তালিকা নেই) এবং লিনাক্সেও বাছাই করা ব্যর্থ হয়েছে (ম্যাক্সডেপথ> 1 দিয়ে, এটি একটি ডিরেক্টরি থেকে শুরু করে যে কোনও ফাইলকে তালিকাভুক্ত করে)। তবে এটি লিনাক্স এবং ইএসএক্সি উভয় ক্ষেত্রেই কাজ করে: find . \( -type f -o -type d \) -name '\.*' -print; maxdepthযেখানে প্রয়োজন সেখানে প্রয়োগ করুন ।
জেরোয়েন ওয়েয়ার্ট প্লুয়িমারস

0

একের নীচে অনেকগুলি কমপ্যাক্ট এবং অনেকগুলি রূপ সমর্থন করে

1) লুকানো ফাইল, ডিরেক্টরি এবং উপ ডিরেক্টরি প্রদর্শন

find . | grep "^\./\."

2) লুকানো ডিরেক্টরি এবং উপ-ডিরেক্টরি কেবল প্রদর্শন করুন

find . -type d | grep "^\./\."

3) লুকানো ফাইলগুলি কেবল বর্তমান এবং উপ-ডিরেক্টরিগুলিতে প্রদর্শন করুন

find . -type f | grep "^\./\."

4) বর্তমান ফোল্ডারে লুকানো ফাইল এবং ডিরেক্টরি প্রদর্শন করুন

find . -maxdepth 1 | grep "^\./\."


0

আপনি চেষ্টা করতে পারেন:

find . -maxdepth 1 -type f -name '\.*' -print
find . -maxdepth 1 \( -type f -o -type d \) -name '\.*' -print

অবশ্যই আপনি বিভিন্ন maxdepthমান ব্যবহার করতে পারেন বা এটি সম্পূর্ণরূপে মুছে ফেলতে পারেন। আপনি যদি ডিরেক্টরি ( -type d) বা নিয়মিত ফাইল ( type f) বা উভয়ের মধ্যে অন্বেষণ করতে চান এবং অন্যান্য ফাংশনগুলির সাথে একত্রিত করতে চান তবে খুব সহায়ক :

(উদাহরণস্বরূপ, গত পরিবর্তিত সময়, উপর ভিত্তি করে) @piroux উদাহরণ - দ্বারা সম্পন্ন @ Jeroen-wiert-pluimers )

find . -maxdepth 1 \( -type f -o -type d \) -name '\.*' -exec stat -c %y {} \; -printf "%P\t"

-1

আপনি চেষ্টা করতে পারেন :

ls -a |grep -E  "^\."

^ ইঙ্গিত দেয় এটি পুনরায় প্রকাশের মাধ্যমে সামগ্রীর শুরু


1
3 বছর আগে থেকে অন্য উত্তরের নকল ...
জেফ শ্যাচলার

আমি পূর্ববর্তী উত্তরটি দেখেছি, এটি সদৃশ নয় এবং অবশ্যই "ls -a" এবং "ls -Ad" এর একই অর্থ নেই। "-এ" মানে ফাইল / ডিরেক্টরি সহ সমস্ত তালিকা "এর সাথে শুরু হয়।" -এ মানে "বাদ দিয়ে সবগুলি তালিকাবদ্ধ করুন।" , ".." এবং ডিরেক্টরি সামগ্রী।
লিঙ্গজিং ফ্রান্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.