Как скрыть каталоги, не изменяя их имена?

OCD во мне хочет каталоги Мне не нравится, что имя скрыто, так как я не взаимодействую с ними напрямую.

Как скрыть каталоги без использования точечной нотации?

48
задан Octavian Damiean 26 February 2012 в 17:00
поделиться

60 ответов

Предполагая, что вы только заботитесь о том, чтобы скрыть файлы из nautilus, есть ошибка в GNOME Bugzilla об этом. Однако, в настоящее время эта ошибка не была решена.

Существует еще один способ скрыть файлы из nautilus. Если вы создаете файл с именем .hidden внутри каталога, любое имя файла, указанное в файле, не будет отображаться.

Например, ниже находится файл .hidden, который я создал. Этот файл скроет любые файлы или папки с именем b или e, расположенные в том же каталоге, что и скрытый файл.

Ниже приведен снимок экрана из папки, содержащей файл .hidden. Обратите внимание, что вы видите только три файла: a, c и f. Вы не видите файл .hidden из-за '.' в начале его названия. Example .hidden File

Снимок экрана ниже той же папки, что и раньше. Однако на этот раз я нажал Ctrl + H, чтобы заставить наутилус отображать скрытые файлы и папки. Обратите внимание, как появляется несколько дополнительных файлов. Теперь вы видите несколько файлов, которые ранее были скрыты из-за наличия имен, которые начинались с символа '.'. Существуют также файлы с именем «b» и «e», которые, хотя и не имеют имен, начинающихся с символа «.», Были скрыты из-за того, что они перечислены в файле .hidden.

Файлы, указанные в файле .hidden, будут скрыты только в nautilus. Такие инструменты, как ls, будут отображать их. Файл .hidden также не является рекурсивным. Это влияет только на файлы в том же каталоге, в котором находится файл .hidden.

Некоторые люди на форуме пошли вперед и создали скрипты для nautilus, которые упрощают добавление файлов в файл .hidden. Ошибка содержит хорошее объяснение того, как устанавливать и использовать сценарии, но второй скрипт немного чище и короче. Не стесняйтесь использовать любой скрипт, чтобы сделать вашу жизнь немного легче.

77
ответ дан nhandler 29 May 2018 в 09:49
поделиться
  • 1
    Вау это здорво. Скрывает файлы в Наутилусе довольно хорошо. Это должно быть принято как ответ на самом деле. – LFC_fan 6 November 2010 в 00:48
  • 2
    +1. Просто заметьте, ЕСЛИ вы думаете, что вам нужно добавить ' для имени файла или папки, которое содержит «пространство», это не так. Просто добавьте имя файла или папки – Anwar 8 September 2012 в 07:49
  • 3
    +1 - Прохладный .... И я рад дать вам 50-летие. – Abid Rahman K 13 December 2014 в 07:54
77
ответ дан nhandler 25 July 2018 в 20:18
поделиться
77
ответ дан nhandler 27 July 2018 в 00:48
поделиться
77
ответ дан nhandler 31 July 2018 в 08:30
поделиться
77
ответ дан nhandler 2 August 2018 в 01:34
поделиться
77
ответ дан nhandler 4 August 2018 в 18:09
поделиться
77
ответ дан nhandler 6 August 2018 в 01:38
поделиться
77
ответ дан nhandler 7 August 2018 в 19:48
поделиться
77
ответ дан nhandler 10 August 2018 в 07:53
поделиться
77
ответ дан nhandler 13 August 2018 в 14:28
поделиться

Unix и Linux поддерживают только скрытые папки, которые находятся в каталоге ..

Если вы действительно хотите убрать их с пути, но хотите, чтобы у них не было . s, поместите их все в .hidden в тот же каталог, что и файл или папка, которые вы хотите скрывать. .hidden не будет отображаться файловым менеджером, и ваши файлы не будут иметь изменения имени.

13
ответ дан Anwar 29 May 2018 в 09:49
поделиться
  • 1
    я бы так хотел держать их в одном месте :) – myusuf3 12 August 2010 в 14:54
  • 2
    это решение будет держать их в одном месте. .hidden даже не должно быть в вашей домашней папке, если вы этого не хотите. Обычно я использую его на съемных дисках, у которых есть файлы конфигурации, которые я не хочу видеть. – jumpnett 12 August 2010 в 15:59
  • 3
    @jumpnett является правильным, место .hidden в том же месте, что и файлы, которые вы хотите скрыть, и добавить имена файлов / каталогов в файле .hidden, по одному на строку. Прекрасно работает! – invert 31 August 2010 в 14:33

Из командной строки вы можете попробовать что-то подобное в вашем файле .bash_aliases:

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

Это добавляет новую команду lsh, которая ведет себя как ls, но скрывает файлы, перечисленные в .hidden. (В нем также отсутствуют некоторые его функции, такие как раскрашенный вывод и списки столбцов.)

3
ответ дан Flimm 29 May 2018 в 09:49
поделиться

Если вы хотите скрыть файлы, вы оставите их только с переименованием с предыдущим ., как и в случае с соглашением # NIX. Извините, но это все.

Однако, если вы хотите скрыть содержимое файлов / каталогов, вы можете сделать это с разрешениями на файлы.

Так что скажите, что у вас есть куча файлов в папке с именем secret_stash, вы можете изменить его так, чтобы только вы (владелец) имели r-x (читать, выполнять), а все остальные ничего не имели --- (без доступа). Поскольку r-x - это минимальные perms, необходимые для просмотра каталога (чтение для доступа к его содержимому и выполнение для их просмотра), что-либо внутри этой папки эффективно скрыто от всех, но root.

content : Я запускаю это демо как root и пытаюсь получить доступ к папке как myuser

. Для этого вы запускаете [ f12] (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
ответ дан jathanism 29 May 2018 в 09:49
поделиться
  • 1
    Вы можете сделать это действительно скрытым с chmod -R 000 secret_stash, тогда никто не сможет его прочитать! – Marco Ceppi♦ 12 August 2010 в 16:41
  • 2
    @Marco Ceppi - ULTIMATE SECRECY! – jathanism 12 August 2010 в 19:22
  • 3
    Конечно, это больше «Безопасность». чем это «Obscurity». - о чем я и думал OP.) – Marco Ceppi♦ 12 August 2010 в 19:28
  • 4
    @MarcoCeppi: chmod 000 скроет файл даже от владельца файла, за исключением корневого, который всегда может обойти 000. Однако владелец файла все равно может изменить разрешение файла на его чтение, поэтому вам нужно также измените право собственности на файл на root, чтобы сделать разрешение 000 действительно значимым. – Lie Ryan 26 June 2012 в 05:24

1st off: если вы хотите скрыть файл от кого-либо: установите систему обнаружения вторжений 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» не могут изменить файл - без изменений chattr отменяется (и да «root» может это сделать).

Ярлык для этой клавиатуры?

Нет, это то, что вам нужно сделать вручную.

2
ответ дан Rinzwind 29 May 2018 в 09:49
поделиться

Существует также расширение для Nautilus, называемое nautilus-hide, которое позволит вам скрыть любой файл или папку простым щелчком правой кнопки мыши по ним.

Чтобы установить это расширение: sudo apt-get install nautilus-hide в терминале , или найдите «nautilus hide» в программном центре Ubuntu.

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

0
ответ дан muru 29 May 2018 в 09:49
поделиться
13
ответ дан Anwar 25 July 2018 в 20:18
поделиться
3
ответ дан Flimm 25 July 2018 в 20:18
поделиться
2
ответ дан jathanism 25 July 2018 в 20:18
поделиться
0
ответ дан muru 25 July 2018 в 20:18
поделиться
2
ответ дан Rinzwind 25 July 2018 в 20:18
поделиться
2
ответ дан jathanism 27 July 2018 в 00:48
поделиться

Существует также расширение для Nautilus, называемое nautilus-hide , которое позволит вам скрыть любой файл или папку простым щелчком правой кнопки мыши по ним.

Чтобы установить это расширение : sudo apt-get install nautilus-hide в терминале или поиск «nautilus hide» в программном центре Ubuntu.

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

0
ответ дан muru 27 July 2018 в 00:48
поделиться
2
ответ дан Rinzwind 27 July 2018 в 00:48
поделиться
13
ответ дан Anwar 27 July 2018 в 00:48
поделиться
3
ответ дан Flimm 27 July 2018 в 00:48
поделиться
13
ответ дан Anwar 31 July 2018 в 08:30
поделиться
3
ответ дан Flimm 31 July 2018 в 08:30
поделиться
2
ответ дан jathanism 31 July 2018 в 08:30
поделиться
0
ответ дан muru 31 July 2018 в 08:30
поделиться
2
ответ дан Rinzwind 31 July 2018 в 08:30
поделиться

Другие вопросы по тегам:

Похожие вопросы: