Как я могу скрыть каталоги или файлы без изменения их имен?

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

Как я могу скрыть каталоги, не используя точечные обозначения?

54
задан 20 October 2018 в 14:57

6 ответов

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

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

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

Example .hidden File

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

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

Example Folders With Hidden Files Visible

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

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

80
ответ дан 20 October 2018 в 14:57

1-й выход: если вы хотите скрыть файл от кого-либо: установите систему обнаружения вторжений 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
ответ дан 20 October 2018 в 14:57

Если вы хотите скрыть файлы, у вас останется только переименовать их с помощью предыдущего . , как и в случае с соглашением *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
ответ дан 20 October 2018 в 14:57

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

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

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

0
ответ дан 20 October 2018 в 14:57

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

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

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

4
ответ дан 20 October 2018 в 14:57

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

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

13
ответ дан 20 October 2018 в 14:57

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

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