Як я можу приховати каталоги чи файли, не змінюючи їх імена?


51

OCD в мені хоче, щоб каталоги, які мені не подобається, щоб ім’я ховалося, оскільки я не взаємодію з ними безпосередньо.

Як я можу приховати каталоги, не використовуючи позначення крапок?

Відповіді:


79

Якщо припустити, що ви дбаєте лише про те, щоб приховати файли від появи в nautilus, у GNOME Bugzilla є помилка з цього приводу. Однак наразі ця помилка не вирішена.

Є ще один спосіб приховати файли від появи в nautilus. Якщо ви створюєте файл, який називається .hiddenвсередині каталогу, будь-яке ім'я файлу, вказане у файлі, не відображатиметься.

Наприклад, нижче .hidden файл, який я створив. Цей файл приховає будь-які файли або папки, названі bабо eрозташовані в тому самому каталозі, що і .hidden файл.

Приклад .hidden File

Нижче - скріншот папки, що містить .hidden файл. Зверніть увагу , що ви бачите тільки три файли: a, cі f. Ви не бачите .hidden файл через '.' на початку своєї назви. Приклад папки

Скріншот нижче - з тієї ж папки, що і раніше. Однак цього разу я натиснув Ctrl+, Hщоб nautilus відображав приховані файли та папки. Зверніть увагу, як відображаються декілька додаткових файлів. Тепер ви бачите кілька файлів, які раніше були приховані через те, що вони мали імена, які починалися з "." Зараз також існують файли під назвою "b" і "e", які, хоча вони не мають імен, що починаються з ".", Були приховані через те, що вони перелічені у файлі .hidden.

Прикладні папки із прихованими файлами

Файли, згадані у файлі .hidden, будуть приховані лише у nautilus. Такі інструменти як lsі раніше відображатимуть їх. Файл .hidden також не є рекурсивним. Він впливає лише на файли в тій самій директорії, в якій знаходиться .hidden файл.

Деякі люди на форумі пішли вперед і створили скрипти для nautilus, які полегшують додавання файлів у .hidden файл. Перший сценарій включає в себе гарне пояснення про те , як встановити та використовувати скрипти, але другий сценарій трохи чистий і коротше. Сміливо використовуйте будь-який сценарій, щоб полегшити ваше життя.


+1. Лише зауваження. Якщо ви думаєте, що вам потрібно додати 'ім'я файлу чи папки, яка містить пробіл, це не так. Просто додайте ім’я файлу чи папки
Anwar

13

Unix і Linux підтримують лише приховування папок, які знаходяться з a ..

Якщо ви дійсно хочете вивести їх із шляху, але хочете, щоб їх не було ., покладіть їх .hiddenу той самий каталог, що і файл або папку, яку ви хочете приховати. .hiddenне відкриється менеджером файлів, і ваші файли не змінять ім’я.


1
Я хотів би тримати їх там же :)
myusuf3

1
це рішення збереже їх на тому самому місці. .hidden навіть не повинен бути у вашій домашній папці, якщо ви не хочете, щоб це було. Зазвичай я його використовую на знімних накопичувачах, які мають конфігураційні файли, які я не хочу бачити.
jumpnett

1
@jumpnett правильний, розмістіть .hidden у тому самому місці, що і файли, які ви хочете приховати, і додайте імена файлів / директорій у .hidden файл, по одному на рядок. Чудово працює!
інвертувати

3

З командного рядка ви можете спробувати щось подібне у вашому .bash_aliasesфайлі:

lsh() {
    [ -s .hidden ] && echo "lsh: hiding $(wc -l .hidden) patterns" && ls $@ | grep -v -F "$(cat .hidden)";
    [ ! -f .hidden ] && ls $@
}

Це додає нову команду, lshяка поводиться так ls, але приховує файли, перелічені в .hiddenкаталозі. (У нього також відсутні деякі його функції, такі як кольоровий вихід і списки стовпців.)


2

Якщо ви хочете приховати файли, вам залишається лише перейменувати їх із попереднім ., як це є * NIX-конвенція. Вибачте, але це все.

Однак, якщо ви хочете приховати вміст файлів / каталогів, ви можете зробити це з дозволами для файлів.

Отже, скажіть, у вас є маса файлів у папці, яку називають secret_stash, ви можете змінити її, щоб мати лише (ви (власник)) r-x(читати, виконувати), а всі інші нічого ---(немає доступу). Оскільки r-xдля перегляду каталогів необхідний мінімальний номер (прочитайте, щоб отримати доступ до його вмісту та виконати, щоб мати можливість їх бачити), все, що знаходиться всередині цієї папки, фактично приховано від усіх, але не root.

ПРИМІТКА . Я демонструю цю демонстрацію як rootі намагаюся отримати доступ до папки якmyuser

Для цього ви запускаєте chmod 700 dirname(700 засобів rwx------):

% mkdir secret_stash
% chmod 700 secret_stash

І ось це:

% whoami
root
% ls -ld secret_stash
drwx------ 2 root root 4.0K 2010-08-12 07:59 secret_stash/
% ls secret_stash  
./  ../  secret.txt
% cat secret_stash/secret.txt 
TOP SECRET DATA

Тепер, і якщо я намагаюся отримати доступ до нього myuser, спроби отримати доступ до папки або її вмісту не вдаються:

% whoami
myuser
% ls -ld secret_stash
drwx------ 2 root root 4.0K 2010-08-12 07:59 secret_stash/
% ls secret_stash 
ls: cannot open directory secret_stash: Permission denied
% cat secret_stash/secret.txt
cat: secret_stash/secret.txt: Permission denied

І тепер я так багато разів сказав слово "секрет", що втрачає всяке значення !!


2
Ви можете зробити це дійсно прихованим, chmod -R 000 secret_stashтоді ніхто не зможе його прочитати!
Марко Чеппі

@Marco Ceppi - ВІЛЬНА БЕЗПЕКА!
ятанізм

Звичайно, це більше "Безпека", ніж "Непрозорість" - саме на це шукала ОП, я думаю;)
Марко Чеппі

2
@MarcoCeppi: chmod 000 приховає файл навіть від власника файлу, крім кореня, який завжди може обійти 000. Однак власник файлу може все-таки змінити дозвіл файлу на його читання, тому вам потрібно також змінити право власності на файл на root, щоб зробити дозвіл 000 справді значимим.
Лежати Райан

2

По-перше: якщо ви хочете приховати файл від кого-небудь: встановіть систему виявлення вторгнень Linux . ( Snort - приклад) Ви навіть можете приховати файл із "root", але "root" також зможе відновити ці налаштування.


Але може бути простіше просто встановити права доступу до каталогу, який містить файл, на "root". Приклад:

 $ sudo su
 # mkdir tmp/
 # touch tmp/1
 # chown root:root tmp
 # chmod 000 tmp  
 # ls -l
total 4
d--------- 2 root root 4096 2015-08-07 06:36 tmp  
 # exit
exit
 $ ls
tmp
 $ cd tmp/
bash: cd: tmp/: Permission denied

І файл 1ефективно прихований від перегляду.

Каталог буде видно; файл не буде видно Майте на увазі: "root" ЗАВЖДИ матиме доступ до будь-якого файлу.


Разом із chattrфайлом ви навіть можете зробити файл незмінним.

sudo su    
chattr + i {file}

і навіть "root" не може змінити файл -unless- the reverted chattr(і так "root" може це зробити).

Якась комбінація клавіш для цього?

Ні, це щось потрібно робити вручну.


0

Існує також розширення для Nautilus під назвою nautilus-hid, яке дозволить вам приховати будь-який файл чи папку простим клацанням правою кнопкою миші на них.

Щоб встановити це розширення: sudo apt-get install nautilus-hideв терміналі або знайдіть "nautilus hid" в програмному центрі Ubuntu.

Не забудьте вийти з Nautilus після встановлення: Alt+ F2та введіть nautilus -q.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.