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

MyUnity предоставляет это и находится в стандартном репозитории. Установите его из Software Center или используйте следующую команду:

sudo apt-get install myunity

Параметры находятся на вкладке запуска, quicklist.

48
задан 26 February 2012 в 21:00

10 ответов

Предполагая, что вы только заботитесь о том, чтобы скрыть файлы из 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
ответ дан 29 May 2018 в 12:49
  • 1
    Вау это здорво. Скрывает файлы в Наутилусе довольно хорошо. Это должно быть принято как ответ на самом деле. – LFC_fan 6 November 2010 в 03:48
  • 2
    +1. Просто заметьте, ЕСЛИ вы думаете, что вам нужно добавить ' для имени файла или папки, которое содержит «пространство», это не так. Просто добавьте имя файла или папки – Anwar 8 September 2012 в 11:49
  • 3
    +1 - Прохладный .... И я рад дать вам 50-летие. – Abid Rahman K 13 December 2014 в 10:54

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

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

13
ответ дан 29 May 2018 в 12:49
  • 1
    я бы так хотел держать их в одном месте :) – myusuf3 12 August 2010 в 18:54
  • 2
    это решение будет держать их в одном месте. .hidden даже не должно быть в вашей домашней папке, если вы этого не хотите. Обычно я использую его на съемных дисках, у которых есть файлы конфигурации, которые я не хочу видеть. – jumpnett 12 August 2010 в 19:59
  • 3
    @jumpnett является правильным, место .hidden в том же месте, что и файлы, которые вы хотите скрыть, и добавить имена файлов / каталогов в файле .hidden, по одному на строку. Прекрасно работает! – invert 31 August 2010 в 18: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
ответ дан 29 May 2018 в 12: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
ответ дан 29 May 2018 в 12:49
  • 1
    Вы можете сделать это действительно скрытым с chmod -R 000 secret_stash, тогда никто не сможет его прочитать! – Marco Ceppi♦ 12 August 2010 в 20:41
  • 2
    @Marco Ceppi - ULTIMATE SECRECY! – jathanism 12 August 2010 в 23:22
  • 3
    Конечно, это больше «Безопасность». чем это «Obscurity». - о чем я и думал OP.) – Marco Ceppi♦ 12 August 2010 в 23:28
  • 4
    @MarcoCeppi: chmod 000 скроет файл даже от владельца файла, за исключением корневого, который всегда может обойти 000. Однако владелец файла все равно может изменить разрешение файла на его чтение, поэтому вам нужно также измените право собственности на файл на root, чтобы сделать разрешение 000 действительно значимым. – Lie Ryan 26 June 2012 в 09: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
ответ дан 29 May 2018 в 12:49

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

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

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

0
ответ дан 29 May 2018 в 12:49

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

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

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

0
ответ дан 27 July 2018 в 03:48

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

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

13
ответ дан 4 August 2018 в 21:09

Из командной строки вы можете попробовать что-то подобное в вашем файле .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
ответ дан 4 August 2018 в 21:09

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
ответ дан 4 August 2018 в 21:09

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

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