Como posso ocultar diretórios sem alterar seus nomes?

47

O OCD em mim quer diretórios Eu não gosto do nome de ser escondido porque não interajo diretamente com eles.

Como posso ocultar diretórios sem usar a notação de ponto?

    
por myusuf3 12.08.2010 / 15:27

6 respostas

77

Supondo que você só se preocupa em impedir que os arquivos apareçam no nautilus, há um bug em o Bugzilla do GNOME sobre isso. No entanto, atualmente, esse bug não foi resolvido.

Existe outra maneira de impedir que os arquivos apareçam no nautilus. Se você criar um arquivo chamado .hidden dentro de um diretório, qualquer nome de arquivo listado no arquivo não será exibido.

Por exemplo, abaixo está um arquivo .hidden que eu criei. Este arquivo irá esconder quaisquer arquivos ou pastas chamados b ou e localizados no mesmo diretório que o arquivo .hidden.

Abaixo está uma captura de tela da pasta que contém o arquivo .hidden. Observe que você vê apenas três arquivos: a , c e f . Você não vê o arquivo .hidden devido ao '.' no começo de seu nome.

A captura de tela abaixo é da mesma pasta de antes. No entanto, desta vez, apertei Ctrl + H para fazer com que o nautilus exibisse pastas e arquivos ocultos. Observe como existem vários arquivos adicionais que aparecem. Agora você vê vários arquivos que estavam ocultos anteriormente devido a nomes que começaram com um '.'. Agora também existem arquivos chamados 'b' e 'e', que apesar de não terem nomes que começam com '.', Estavam ocultos devido a estarem listados no arquivo .hidden.

Os arquivos mencionados no arquivo .hidden só estarão ocultos no nautilus. Ferramentas como ls ainda irão exibi-las. O arquivo .hidden também não é recursivo. Isso afeta apenas arquivos no mesmo diretório em que o arquivo .hidden está.

Algumas pessoas no fórum foram adiante e criaram scripts para o nautilus que facilitam a inclusão de arquivos no arquivo .hidden. O primeiro script inclui uma boa explicação sobre como instalar e usar os scripts, mas o segundo script é um pouco mais limpo e mais curto. Sinta-se à vontade para usar qualquer script para tornar sua vida um pouco mais fácil.

    
por nhandler 16.10.2010 / 20:21
13

Unix e Linux só suportam esconder pastas que estão com . .

Se você realmente quiser tirá-los do caminho, mas quiser que eles não tenham . s, coloque-os todos em .hidden no mesmo diretório que o arquivo ou pasta que você deseja ocultar. .hidden não será exposto pelo gerenciador de arquivos e seus arquivos não terão uma mudança de nome.

    
por lfaraone 12.08.2010 / 15:35
3

Na linha de comando, você poderia tentar algo assim em seu arquivo .bash_aliases :

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

Isso adiciona um novo comando lsh que se comporta como ls , mas oculta arquivos listados em um diretório .hidden . (Também está faltando alguns de seus recursos, como saída colorida e listagens de colunas.)

    
por qneill 01.11.2011 / 03:41
2

Se você quiser ocultar os arquivos, só terá que renomeá-los com uma% anterior . , como é a convenção * NIX. Desculpe, mas é isso.

No entanto, se você quiser ocultar o conteúdo dos arquivos / diretórios, poderá fazê-lo com permissões de arquivo.

Digamos que você tenha um monte de arquivos em uma pasta chamada secret_stash , você pode alterá-lo para que somente você (o proprietário) tenha r-x (leia, execute) e todo mundo não tenha nada --- (não Acesso). Como r-x é o mínimo de permanentes necessários para visualizar um diretório (lido para acessar seu conteúdo e executar para poder vê-los), qualquer coisa dentro dessa pasta fica efetivamente oculta de todos, exceto root .

OBSERVAÇÃO : estou executando essa demonstração como root e tentando acessar a pasta como myuser

Para fazer isso, você executa chmod 700 dirname (700 significa rwx------ ):

% mkdir secret_stash
% chmod 700 secret_stash

E aqui está:

% 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

Agora, se eu tentar acessá-lo a partir de myuser , as tentativas de acessar a pasta ou seu conteúdo falharão:

% 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

E agora eu disse a palavra "segredo" tantas vezes que perdeu todo o significado !!

    
por jathanism 12.08.2010 / 17:14
2

primeiro: se você quiser esconder um arquivo de qualquer pessoa: instale um sistema de detecção de intrusos linux . ( Snort é um exemplo) Você pode até ocultar um arquivo de "root", mas "root" também poderá reverter essas configurações.

Mas pode ser mais fácil apenas definir as permissões do diretório que contém o arquivo como "root". Exemplo:

 $ 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

E o arquivo 1 está efetivamente oculto.

Diretório será visível; arquivo não será visível. Lembre-se: "root" sempre terá acesso a qualquer arquivo.

Juntamente com o chattr , você pode até tornar o arquivo imutável.

sudo su    
chattr + i {file}

e até mesmo "root" não podem alterar o arquivo - a menos que o chattr seja revertido (e sim "root" pode fazer isso).

  

Algum atalho de teclado para isso?

Não, isso é algo que você precisa fazer manualmente.

    
por Rinzwind 07.08.2015 / 09:16
0

Há também uma extensão para o Nautilus chamada nautilus-hide que permitirá ocultar qualquer arquivo ou pasta com um simples clique sobre eles.

Para instalar esta extensão: sudo apt-get install nautilus-hide em um terminal ou procure por "nautilus hide" no Ubuntu Software Center.

Não se esqueça de sair do Nautilus após a instalação: Alt + F2 e digite nautilus -q .

    
por SNugues 07.08.2015 / 11:00