বিন্দু ব্যবহার না করে লিনাক্সে ফাইলগুলি লুকান


32

উইন্ডোজে এটি সম্ভব হওয়ায় আমি বিন্দুটি ব্যবহার না করে লিনাক্সে ফাইলগুলি আড়াল করতে চাই।

এই কাজ করতে একটি উপায় আছে কি?


6
মনে রাখবেন ফাইলগুলি আড়াল করে রাখা (
অবরুদ্ধকরণ

উত্তর:


26

তুমি পার না. ফাইল সিস্টেমগুলি যেভাবে লুকানো সেটিংস পরিচালনা করে তার একটি মৌলিক পার্থক্য রয়েছে। উইন্ডোজে, ফাইল সিস্টেমটি মেটাডেটাতে ফাইলের জন্য কয়েকটি বৈশিষ্ট্য সংরক্ষণ করে, "লুকানো" এবং "সিস্টেম" (যা উভয়ই লুকানো ফাইলের ধরণের) বৈশিষ্ট্যগুলি সহ। সাধারণ * নিক্স ফাইল সিস্টেমে এ জাতীয় কোনও বৈশিষ্ট্য সংরক্ষণ করা হয় না। পরিবর্তে তথ্যটি অন্য কোথাও যেমন ফাইলের নামে রাখা উচিত। কনভেনশনটি এভাবেই ফাইলগুলি শুরু হয়। (এবং আপনার সিস্টেমের উপর নির্ভর করে, সম্ভবত _ এর মতো আরও কিছু) ডিফল্টরূপে বেশিরভাগ সরঞ্জাম দ্বারা প্রদর্শিত হবে না।

এটি নিখুঁত সুবিধার জন্য, এ। একটি ফাইলের নাম শুরু করার অর্থ "ব্যবহারকারী সম্ভবত এটি সব সময় দেখতে চান না" but আপনি জানেন কিনা তা নিশ্চিত করার জন্য, চলমান উদাহরণস্বরূপ ls -aসমস্ত ফাইল প্রদর্শিত হবে।

আপনি যদি লিনাক্সে কোনও তালিকাতে ফাইল তালগোল পাকতে না চান তবে আপনার বিন্দু দিয়ে শুরু করার জন্য এটির নাম পরিবর্তন করা উচিত (বোনাস: এটি ওএস এক্সের জন্যও কাজ করবে, যদি আমরা কোনও পোর্টেবল ডিভাইস সম্পর্কে কথা বলি)। আপনি যদি ব্যবহারকারীদের কোনও ফাইল সন্ধান করতে না চান তবে আপনি এটি ভুল করছেন wrong অনুমতিগুলির জন্য এটিই।

ডিরেক্টরিগুলির সাথে সম্পর্কিত হিসাবে ইউনিক্স অনুমতিগুলি প্রায়শই মানুষকে বিভ্রান্ত করে এবং সম্ভবত এটি আরও ভালভাবে বুঝতে আপনাকে সহায়তা করবে। "পঠন" এবং "চালানো" অনুমতিগুলি ( rএবং x) অর্থ ফাইলগুলির চেয়ে ডিরেক্টরিগুলির জন্য আলাদা কিছু। ডিরেক্টরিগুলির জন্য, এক্সিকিউট xকরার অনুমতি নির্ধারণ করে যে আপনি ডিরেক্টরিতে ইনোডগুলি অ্যাক্সেস করবেন কিনা। rআপনি ডিরেক্টরিটির তালিকা অ্যাক্সেস করতে পারবেন কিনা তা পঠনের অনুমতি নির্দেশ করে। কার্যকরীভাবে, xব্যবহারকারীর একটি ডিরেক্টরিতে জিনিসগুলি করার rঅনুমতি দেয় , যখন অনুমতি তাদের এতে কী রয়েছে তা দেখার অনুমতি দেয়। এগুলি পৃথক, এবং পার্থক্য বিভ্রান্তিকর হতে পারে। আসুন একটি উদাহরণ তাকান:


jeanluc@login64: ~ $ mkdir example
jeanluc@login64: ~ $ echo "you can read it" > example/file
jeanluc@login64: ~ $ ls example/
file
jeanluc@login64: ~ $ cat example/file
you can read it

jeanluc@login64: ~ $ chmod -x example/
jeanluc@login64: ~ $ ls example/
ls: cannot access example/file: Permission denied
file
jeanluc@login64: ~ $ cat example/file
cat: example/file: Permission denied
jeanluc@login64: ~ $ cd example/
-bash: cd: example/: Permission denied

jeanluc@login64: ~ $ chmod +x example/
jeanluc@login64: ~ $ chmod -r example/
jeanluc@login64: ~ $ ls example/
ls: cannot open directory example/: Permission denied
jeanluc@login64: ~ $ cat example/file
you can read it
jeanluc@login64: ~ $ cd example/
jeanluc@login64: ~/example $ ls
ls: cannot open directory .: Permission denied
jeanluc@login64: ~/example $ cd ..

সুতরাং, লক্ষ করুন যে নির্বাহ না করে আমি এখনও ফাইলগুলি তালিকাভুক্ত করতে পারি (যদিও ls একটি ত্রুটি দেখায় কারণ এটি ফাইলের বৈশিষ্ট্যগুলি পেতে পারে না), তবে আমি ডিরেক্টরিতে পরিবর্তন করতে বা এতে ফাইলগুলি পড়তে পারি না। পঠন ব্যতীত আমি ফাইলগুলি তালিকাবদ্ধ করতে পারি না, তবে আমি এখনও ডিরেক্টরিতে পরিবর্তন করতে পারি এবং যদি কোনও ফাইলের নাম জানি তবে আমি এটিতে অ্যাক্সেস করতে পারি।

তবে মনে রাখবেন যে পড়ার অনুমতি অপসারণ করা আপনাকে কেবল অস্পষ্টতার দ্বারা সুরক্ষা দেয়। যদি ব্যবহারকারী ফাইলটির নামটি অনুমান করে তবে তারা এর সামগ্রীগুলি পড়তে সক্ষম হবে।

এটি আপনার প্রশ্নের সাথে সত্যিই প্রাসঙ্গিক নাও হতে পারে, আমি কেবল আপনি ডিরেক্টরি অনুমতিগুলি বুঝতে পেরেছিলেন তা নিশ্চিত করতে চেয়েছিলাম।


26

.hiddenআড়াল করার জন্য ফাইলগুলির নাম সহ ডিরেক্টরিতে একটি ফাইল তৈরি করুন (প্রতিটি লাইনের একটি নাম)।

তারপরে আপনার সাথে নিম্নলিখিতগুলি যুক্ত করুন ~/.bashrc:

ls () {
  if [ -f .hidden ]; then
    declare GLOBIGNORE="$GLOBIGNORE:.*:$(tr '\n' ':' < .hidden)"
    ls "$@"
  fi
}

এখন আপনার lsকমান্ড এই ফাইলগুলির তালিকা করে না।

আমি আমার __pycache__এবং __init__.pyফাইলগুলি আড়াল করতে এই কৌশলটি ব্যবহার করি ।


সম্পাদনা করুন: অন্য মন্তব্য অনুসারে এটি তাদের কমপক্ষে একটিতেও লুকিয়ে রাখে (নটিলাস), তবে সম্ভবত বেশ কয়েকটি জিইআইআই ফাইল ব্রাউজারগুলিও।


এটা কৌতূহলোদ্দীপক. এটি নটিলাস বা অন্যান্য গুই সরঞ্জামগুলিতেও কাজ করে? আপনি ফাইলগুলি দেখতে সক্ষম ls -al?
জাকুজে

1
: কোড শেষে একটি 'অনুপস্থিত "(এবং যদি আপনি ভাবছি যেখানে upvotes থেকে। askubuntu.com/a/713591/15811 ;-))
Rinzwind

14

আপনি বিন্দু যুক্ত না করে লিনাক্সে ফাইলগুলি আসলে লুকিয়ে রাখতে পারেন। এটি তাদের নটিলাসে লুকিয়ে রাখে; lsকমান্ড লাইন থেকে একটি এখনও ফাইলগুলি তালিকাবদ্ধ করবে।

  1. .hiddenযে ফোল্ডারে আপনি ফাইলগুলি আড়াল করতে চান সেখানে একটি পাঠ্য ফাইল তৈরি করুন ।
  2. আপনি যে ফাইলগুলি বা ফোল্ডারগুলি আড়াল করতে চান তার নাম প্রতি ফাইলের প্রতি লাইনে একটি যুক্ত করুন।
  3. আপনার ফাইল ব্রাউজারটি রিফ্রেশ করুন।

2
ডেবিয়ান 5.0 এ "ls" দিয়ে এখানে কাজ করে না। এটি কি নটিলাস বা ডলফিনের সাথে নির্দিষ্ট বা ...?
টিম হেজেল

2
ফাইলগুলি নটিলাসে লুকানো আছে; না lsতালিকা।
কি

1
কেবল দুর্দান্ত সমাধান! :)
Merianos নিকোস

4

লিনাক্সে ফাইলগুলি আড়াল করার জন্য একটি বিন্দু ব্যবহার করা হয় এবং এটি পরিবর্তন করা যায় না।

তবে ব্যবহারকারীরা প্রদত্ত ফোল্ডার / ফাইলে অ্যাক্সেস রাখতে সক্ষম হতে বাধা দিতে আপনি ফাইল অনুমতি নিয়ে খেলতে পারেন। chmodকমান্ড দিয়ে পরীক্ষা করার চেষ্টা করুন ।


2

আপনি কি কেবল নিজের গ্রাফিকাল ইউজার ইন্টারফেসের ফাইল ম্যানেজার এবং / অথবা ডেস্কটপ পরিবেশ থেকে ফাইলগুলি আড়াল করার চেষ্টা করছেন? যদি তা হয় তবে ডট দিয়ে ফাইলের নামটি উপস্থাপনের বাইরেও বিকল্প থাকতে পারে।

আমি বিশ্বাস করি শুধুমাত্র অতিরিক্ত কোনো লিনাক্স ফাইল ম্যানেজার দ্বারা লুকানো ফাইল ব্যাকআপ ফাইল, অর্থাত সেই একটি টিল্ড শেষ হওয়া হয় ~বা .bakবা যাই হোক না কেন, তারা ঈমান আনে ব্যাকআপ এক্সটেনশান। যাই হোক না কেন, আপনি সম্ভবত ভাগ্যে আছেন যদি আপনি যা করতে চান তা ফাইল ম্যানেজারের ব্যাকআপ ফাইলগুলি গোপন করে।

আপনার ফাইলগুলিকে আড়াল করার জন্য একটি ব্যাকআপ এক্সটেনশান দিবেন না বা এগুলি ঘটনাক্রমে মুছে ফেলা হতে পারে !!

অন্যদিকে, আপনি কমান্ড SetFile -a V [file]বা সম্পাদনা ব্যবহার করে ম্যাক ওএস এক্সের ফাইন্ডার থেকে ফাইলগুলি আড়াল করতে পারেন /.hiddenতবে স্পষ্টতই এটি কমান্ড লাইনের lsপ্রোগ্রাম থেকে ফাইলটি আড়াল করবে না ।


3
ওএস এক্সে আপনি ফাইলগুলিও আড়াল করতে পারেন chflags hidden filename
slhck

2

আপনার যদি কিছু প্রোগ্রামিং দক্ষতা থাকে এবং ব্যবহারকারী প্রয়োজনের জন্য কেবলমাত্র আপনার প্রয়োজনীয় ফাইল ফাইলগুলি হিপিং করা হয় তবে ভিজ্যুয়াল স্পেসটি বিশৃঙ্খলা বন্ধ করতে আপনি এটি হ্যাক করতে পারেন!

আমি কেবল কমান্ড লাইন সরঞ্জামগুলি বিবেচনা করব, কারণ এগুলি বেশ অভিন্ন এবং কেবলমাত্র আমার জন্য ব্যবহৃত একমাত্র সরঞ্জাম।

এই তথ্য সংরক্ষণ করার বিভিন্ন উপায়:

  1. আপনি নির্বাচিত ফাইলগুলিতে "লুকানো" বর্ধিত বৈশিষ্ট্য সংরক্ষণ করতে পারেন। দেখman attr

      attr -s hidden -V true your_file
    
  2. বা উপরে উল্লিখিত হিসাবে আপনি ফাইলের মধ্যে .hiddenফাইলের নাম তালিকা সংরক্ষণ করতে পারেন

গুরুত্বপূর্ণ: আপনার যুক্তিটি প্রয়োগ করতে হবে এমন বাক্সটির বাইরে এটি কার্যকর হবে না, পরিষ্কার সিস্টেমগুলি কেবল .hiddenফাইল এবং hiddenবর্ধিত বৈশিষ্ট্যগুলিকে উপেক্ষা করবে !

এছাড়াও বহুবিধ সম্ভাব্য বাস্তবায়ন রয়েছে:

  1. আপনার যদি মাত্র কয়েকটি ফাইল থাকে তবে আপনার .bashrcফাইলটিতে লিখুন

    alias ls='ls -I filename_1 -I filename_2'
    

    man ls আরও তথ্যের জন্য.

  2. function lsএমন একটি লিখুন যাতে এটি লুকানো ফাইলগুলি সনাক্ত করতে এবং সমস্ত -Iএন্ট্রিগুলির তালিকা একত্রিত করার পিছনে সমস্ত যুক্তি পরিচালনা করে এবং তারপরে /bin/lsসঠিকভাবে উপেক্ষা করা পতাকা সহ সম্পাদন করে। খুব শ্রমসাধ্য কাজ, কারণ আপনাকে সমস্ত lsপ্যারামিটারগুলি সঠিকভাবে পরিচালনা করতে হবে ।

  3. কোর্টিলের উত্স পান

    git clone git://git.sv.gnu.org/coreutils
    

    অথবা

    git clone git://git.suckless.org/sbase
    

    আপনার লুকানো ফাইলগুলি প্রয়োগের জন্য যেভাবে প্রয়োজন তা প্যাচ করুন। এবং এটি আপনার মধ্যে রাখুনPATH

    আমি অতএব 5 মিনিটের মধ্যে এটিকে হ্যাক করেছি স্তন্যহীন উত্স ব্যবহার করে এবং ভিন্নতা এইরকম:

     diff --git a/ls.c b/ls.c
     index cdfce4d..8197409 100644
     --- a/ls.c
     +++ b/ls.c
     @@ -214,6 +214,17 @@ lsdir(const char *path)
             first = 0;
             while ((d = readdir(dp))) {
     +///////////////////////////////////////////////
     +// Dirty hack to implement hidden files
     +// FIXME: Make proper(!) subroutine
     +               char attr_command[1024] = "attr -Lqg hidden "; // Oh, dear. That's bad
     +               int attr_code;
     +               strcat(attr_command, d->d_name);
     +               strcat(attr_command, " >/dev/null 2>&1");
     +               attr_code = system(attr_command);
     +               if (!attr_code)
     +                       continue;
     +///////////////////////////////////////////////
                     if (d->d_name[0] == '.' && !aflag && !Aflag)
                             continue;
                     else if (Aflag)
    

ls.cমধ্যে মিথ্যা src, না রুট ডিরেক্টরি, এবং কোন ফাংশন lsdirমধ্যে ls.c
মেলাব

2

এটি আমার কাছে পাওয়া সেরা সমাধান, আপনার প্রোফাইলে যুক্ত করুন :

alias ls="/bin/ls --color=auto --ignore='*.egg-info' --ignore='__pycache__'"

আপনার যদি আরও নিদর্শনগুলির প্রয়োজন হয় তবে আরও বেশি --ignoreপতাকা যুক্ত করুন।


এটি একটি খুব, খুব দীর্ঘ স্ট্রিং হতে চলেছে যদি কয়েকটি ফাইলের বেশি লুকানো দরকার হয়। একাধিক ফাইলের জন্য, এটি করার জন্য আরও কার্যকর উপায় রয়েছে তবে কয়েকটি ফাইলের জন্য, তবে এটি একটি ভাল সমাধান।
JW0914

2

আজকাল আপনি FUSE লিখতে পারেন যা প্রদত্ত কনফিগার অনুযায়ী ফাইলগুলি আড়াল করে।

এই নিবন্ধটি আমাকে বিশ্বাস করে যে আপনাকে getdirফাংশনটি টুইঙ্ক করতে হবে:

getdir: int (*getdir) (const char *, fuse_dirh_t, fuse_dirfil_t);
এটি একটি ডিরেক্টরি বিষয়বস্তু পড়তে। এই অপারেশন opendir(), readdir(), ..., closedir()এক কলে অনুক্রম। প্রতিটি ডিরেক্টরি প্রবেশের জন্য, filldir()ফাংশনটি কল করা উচিত।

আমি প্রোগ্রামার নই তবে আমি কল্পনা করেছি যে কেউ getdir(যেমন) .hiddenফাইলের তালিকাভুক্ত সমস্ত ফাইল বাদ দিতে পারে । আপনি যদি এটি সঠিকভাবে প্রয়োগ করেন তবে প্রতিটি সরঞ্জাম (জিইউআই বা না) প্রভাবিত হবে।


1

আপনি 'আড়াল' করতে দল, বা অন্য জন্য 'X perms দূরে নিয়ে একটি ডিরেক্টরির বিষয়বস্তু: chmod go-x directoryname। আপনি যদি সঠিক পথটি জানতেন তবে কোনও ফাইল অ্যাক্সেস করতে পারলেও আপনি আর ফাইল তালিকাভুক্ত করতে পারবেন না। এটি আপনি যা চান তা শোনাচ্ছে না।

ডটফাইলে জিনিসটি একটি সুবিধাযুক্ত বিষয় মনে রাখবেন, সুরক্ষার প্রয়োজনে ফাইলটি সত্যই আড়াল করা নয়, ফাইল তালিকার সময় ফাইলগুলির বিশৃঙ্খলা হ্রাস করা। এটিতে lsএবং অন্যান্য সরঞ্জামগুলিতে বেকড ।


এবং এটি অসত্যও। ডিরেক্টরি থেকে পড়া অনুমতিগুলি সরিয়ে ফেলার সময় আপনাকে এর বিষয়বস্তু তালিকাবদ্ধকরণ থেকে বিরত রাখে, এক্সিকিউটের অনুমতিটি অপসারণ করলে ডিরেক্টরিটিতে কোনও অ্যাক্সেস অস্বীকার করবে না। যখন আপনার কাছে ডিরেক্টরি চালানোর অনুমতি নেই তখন আপনার এর বাইরে কোনও কিছুর অ্যাক্সেস পাবেন না। এমনকি এতে সম্পূর্ণ অধিকার সহ একটি উপ-ডিরেক্টরি আছে এবং আপনি তার পথটি জানেন Not
বাচসউ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.