ম্যাক ওএস এক্সে কোনও ফোল্ডার / ফাইল লুকানো আছে কিনা তা বলুন


10

আমি তোমাদের সেট না করা বা করে একটি ফোল্ডার / ফাইলের গোপন পতাকা আনসেট করতে জানেন chflags hidden foo.txtএবং chflags nohidden foo.txt

তবে ফোল্ডার / ফাইলটি বর্তমানে লুকানো আছে কি নেই তা বলার উপায় আছে কি?

ফোল্ডার / ফাইলটি কোনও বিন্দু দিয়ে শুরু হচ্ছে কিনা তা আমি কেবল নির্ধারণ করতে চাই না।

উত্তর:


10

Ls ম্যান পেজ অনুসারে, ls এর-O সাথে -lপতাকা দেখতে বিকল্পের সাথে একত্রে সক্ষম হওয়া উচিত । উদাহরণ স্বরূপ:

ls -Ol foo.txt
-rw-r--r-- 1 harry staff - 0 18 Aug 19:11 foo.txt
chflags hidden foo.txt
ls -Ol foo.txt
-rw-r--r-- 1 harry staff hidden 0 18 Aug 19:11 foo.txt
chflags nohidden foo.txt
ls -Ol foo.txt
-rw-r--r-- 1 harry staff - 0 18 Aug 19:11 foo.txt

সম্পাদনা করুন: ওপি কী চেয়েছিল তার আরও সুনির্দিষ্ট সমাধান দেওয়ার জন্য (নীচে মন্তব্যগুলি দেখুন): কোনও ফোল্ডারটি লুকিয়ে আছে কি না তা দেখতে, আমরা -aফোল্ডারটি দেখতে ls বিকল্পটি পাস করতে পারি । এরপরে আউটপুটটির প্রয়োজনীয় লাইনটি পাওয়ার জন্য আমরা আউটপুটটিকে sed -n 2p(ধন্যবাদ স্ট্যাক ওভারফ্লো ) পাইপ করতে পারি । একটি উদাহরণ:

mkdir foo
chflags hidden foo
ls -aOl foo | sed -n 2p
drwxr-xr-x@ 2 harry staff hidden 68 18 Aug 19:11 .

সম্পাদনা 2: একটি ফাইল বা ফোল্ডার নির্বিশেষে যে কমান্ডের কাজ করা উচিত তার জন্য আমাদের আরও কিছুটা হ্যাকি করা দরকার।

ls -alফোল্ডারগুলি মোট একটি গণনা দেখায়, যেখানে ফাইলগুলি হয় না এমনটি নির্ভর করে জিনিসটি কোনও ফাইল বা ফোল্ডার কিনা তার উপর নির্ভর করে আউটপুটটির প্রয়োজনীয় লাইন পরিবর্তিত হয়। এটি পেতে, আমরা চরিত্রটির জন্য গ্রেপ করতে পারি r। এটি all সমস্ত ফাইল / ফোল্ডারগুলির মধ্যে থাকা উচিত (প্রায় সকলের কমপক্ষে একটি পড়ার অনুমতি থাকা উচিত) তবে মোট লাইনে নয়।

আমরা যে রেখাটি পেতে চাই তার পরে প্রথম লাইন হয়ে যায়, আমরা head -n 1প্রথম লাইনটি পেতে ব্যবহার করতে পারি (বিকল্প, যদি আপনি শেড পছন্দ করেন sed -n 1pতবে ব্যবহার করা যেতে পারে)।

সুতরাং, উদাহরণস্বরূপ একটি ডিরেক্টরি সহ:

mkdir foo
chflags hidden foo
ls -aOl foo | grep r | head -n 1
drwxr-xr-x@ 2 harry staff hidden 68 18 Aug 19:11 .

এবং একটি ফাইল সহ:

touch foo.txt
chflags hidden foo.txt
ls -aOl foo.txt | grep r | head -n 1
-rw-r--r-- 1 harry staff hidden 0 18 Aug 19:11 foo.txt

সম্পাদনা 3: গ্রাইপিংয়ের চেয়ে নিপুণ উপায়ে নীচের দিকে টাইলোর উত্তর দেখুন r:)


তবে এটি একটি ফোল্ডারের সাহায্যে ফাইলগুলির / ফোল্ডারগুলির নীচে ফ্ল্যাগগুলির নীচে
তালিকাভুক্ত করা

কেবল লুকানো ফাইলগুলি দেখতে, গ্রেপের মাধ্যমে পাইপ করুন (উদাঃ ls -Ol fooDir/ | grep hidden) কেবল লুকানো ফাইল / ফোল্ডারগুলি দেখতে। এটি এখনও সমস্ত ফাইল প্রদর্শন করবে, তবে আপনি যদি কিছু সেড / অ্যাজক ম্যাজিকের মাধ্যমে এটি পাইপ করেন (তবে অন্য কাউকে এখানে আমার সহায়তা করতে হবে বলে আমি ভয় করি) আপনি কেবল ফাইলগুলির একটি তালিকা পেতে সক্ষম হবেন।

আমি কেবল যে ফাইলগুলি জানতে চাইছি তার তালিকা চাই না "
ফু

ঠিক আছে. ডিরেক্টরিটি নিজেই দেখতে -als বিকল্পটি যুক্ত করুন । আউটপুট থেকে আপনার প্রয়োজনীয় রেখাটি পেতে, আপনি সেড ব্যবহার করতে পারেন। উদাহরণস্বরূপ: ls -aOl foo | sed -n 2p। এটি আউটপুট এক লাইন প্রদর্শন করবে। যদি এটিতে "লুকানো" শব্দটি থাকে তবে ফু লুকানো থাকে। এটি না হলে, ফু লুকানো হয় না। :)

2
ব্যবহারের ls -Old dirname/ফলে আপনাকে ডিরেক্টরিগুলির নিজস্ব বৈশিষ্ট্য প্রদর্শন করবে না, এর সামগ্রীগুলি contents
বাহামা

7

সমাধানটি এখানে খুঁজে পেয়েছি: আমি কীভাবে কেবলমাত্র উল্লিখিত ডিরেক্টরি সম্পর্কিত তথ্য প্রদর্শন করতে পারি, এর উপ-ফাইল বা ফোল্ডার সামগ্রীগুলির তথ্য নয়?

মূলত কোনটি ls -ldO fooএবং তারপরে আপনি কেবল | awk '{ print $5 }'এটিকে তথ্য প্রদর্শন করতে সংযোজন করেন।


1
সাবধান থাকুন যে ব্যবহারকারীর নাম বা গোষ্ঠীর নামটিতে সাদা জায়গা রয়েছে (যা অত্যন্ত সম্ভাব্য হওয়া উচিত তবে হেই)) আমি একটি নিরাপদ সমাধান যুক্ত করেছি যা ব্যবহার করে stat
মিঃ মিঃ

1

@ টিইলো দ্বারা উল্লিখিত হিসাবে , @ সর্পিগাল চেষ্টা করার পরামর্শ দেয় stat, যা "ইউজার ফ্ল্যাগগুলি" %Xf(সে এক্স এনকোডেড ইউজার এফ ল্যাগ) দিয়ে এনকোড করে এবং মেশিন পার্সিংয়ের পক্ষে অনেক বেশি নিরাপদ।

$ stat -f "%Xf" ~/Library
8000

ব্যবহারকারী পতাকা জন্য হেক্স মান এখানে বাস: grep UF /usr/include/sys/stat.h। ম্যাকোস 10.11 হিসাবে:

#define UF_SETTABLE     0x0000ffff  /* mask of owner changeable flags */
#define UF_NODUMP       0x00000001  /* do not dump file */
#define UF_IMMUTABLE    0x00000002  /* file may not be changed */
#define UF_APPEND       0x00000004  /* writes to file may only append */
#define UF_OPAQUE       0x00000008  /* directory is opaque wrt. union */
/* #define UF_NOUNLINK  0x00000010 */   /* file may not be removed or renamed */
#define UF_COMPRESSED   0x00000020  /* file is hfs-compressed */
/* UF_TRACKED is used for dealing with document IDs.  We no longer issue
   notifications for deletes or renames for files which have UF_TRACKED set. */
#define UF_TRACKED      0x00000040
#define UF_HIDDEN       0x00008000  /* hint that this item should not be */
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.