it-swarm-pt.tech

Como posso ocultar diretórios ou arquivos sem alterar seus nomes?

O OCD em mim quer diretórios Eu não gosto do nome de estar oculto desde que eu não interajo diretamente com eles.

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

50
myusuf3

Supondo que você só se preocupe em esconder os arquivos de aparecerem no nautilus, há um bug no Bugzilla do GNOME sobre isso. No entanto, atualmente, esse bug não foi resolvido.

Há outra maneira de ocultar os arquivos que aparecem 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.

Example .hidden File

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

A captura de tela abaixo é da mesma pasta de antes. No entanto, desta vez, eu bati Ctrl+H para fazer com que o nautilus exiba arquivos e pastas 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.

Example Folders With Hidden Files Visible

Os arquivos mencionados no arquivo .hidden só serão ocultos no nautilus. Ferramentas como ls ainda irão exibi-las. O arquivo .hidden também não é recursivo. Apenas afeta 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.

79
nhandler

Unix e Linux apenas 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 em um .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.

13
lfaraone

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 [email protected] | grep -v -F "$(cat .hidden)";
    [ ! -f .hidden ] && ls [email protected]
}

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.)

3
qneill

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

No entanto, se você quiser ocultar o content dos arquivos/diretórios, você pode fazê-lo com permissões de arquivo.

Então diga que você tem um monte de arquivos em uma pasta chamada secret_stash, você pode mudá-lo para que somente você (o dono) tenha r-x (read, execute) e todo mundo não tenha nada --- (sem acesso). Como r-x é o mínimo de permissões necessárias para visualizar um diretório (lido para acessar seu conteúdo e executar para poder vê-lo), qualquer coisa dentro dessa pasta é efetivamente oculta de todos, exceto root.

NOTE: estou executando esta demo 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, e 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 "secreta" tantas vezes que perdeu todo o sentido !!

2
jathanism

1ª parte: se você quiser esconder um arquivo de qualquer pessoa: instale um sistema de detecção de intrusos do linux . ( Snort é um exemplo) Você pode até esconder um arquivo de "root", mas "root" também poderá reverter essa configuração.


Mas pode ser mais fácil apenas definir as permissões do diretório que contém o arquivo para "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 é efetivamente escondido da exibição.

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 pode alterar o arquivo - a menos que o chattr seja revertido (e sim "root" pode fazer isso).

Qualquer atalho de teclado para isso?

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

2
Rinzwind

Há também uma extensão para o Nautilus chamada nautilus-hide que lhe 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 esqueça de sair do Nautilus após a instalação: Alt+F2 e digite nautilus -q.

0
SNugues