Respostas:
Supondo que você se preocupe apenas em ocultar os arquivos para que apareçam no nautilus, existe um bug no GNOME Bugzilla sobre isso. No entanto, atualmente, esse bug não foi resolvido.
Há outra maneira de ocultar os arquivos que não 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 oculta qualquer arquivo ou pasta nomeado b
ou e
localizado no mesmo diretório que o arquivo .hidden.
Abaixo está uma captura de tela da pasta que contém o arquivo .hidden. Note que você só vê três arquivos: a
, c
, e f
. Você não vê o arquivo .hidden devido ao '.' no início de seu nome.
A captura de tela abaixo é da mesma pasta de antes. No entanto, desta vez, pressionei Ctrl+ Hpara fazer com que o nautilus exibisse 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 começando com um '.', Foram ocultados devido a serem listados no arquivo .hidden.
Os arquivos mencionados no arquivo .hidden serão ocultados apenas no nautilus. Ferramentas como ls
ainda as exibirão. O arquivo .hidden também não é recursivo. Isso afeta apenas os arquivos no mesmo diretório em que o arquivo .hidden está.
Algumas pessoas no fórum criaram scripts para o nautilus que facilitam a adição de arquivos ao arquivo .hidden. O primeiro script inclui uma boa explicação sobre como instalar e usar os scripts, mas o segundo é um pouco mais limpo e mais curto. Sinta-se livre para usar qualquer um dos scripts para tornar sua vida um pouco mais fácil.
Unix e Linux suportam apenas ocultar pastas que estão com a .
.
Se você realmente deseja tirá-los do caminho, mas deseja que eles não tenham .
s, coloque-os todos no .hidden
mesmo diretório do arquivo ou pasta que deseja ocultar. .hidden
não serão expostos pelo gerenciador de arquivos e seus arquivos não terão uma alteração de nome.
Na linha de comando, você pode tentar algo como isto em seu .bash_aliases
arquivo:
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 .hidden
diretório. (Também faltam alguns de seus recursos, como saída colorida e listagens de colunas.)
Se você deseja ocultar arquivos, você apenas os renomeou com uma precedente .
, como é a convenção * NIX. Desculpe, mas é isso.
No entanto, se você deseja ocultar o conteúdo dos arquivos / diretórios, pode 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 ---
(sem acesso). Como r-x
são as permissões mínimas necessárias para exibir um diretório (leia para acessar seu conteúdo e execute para poder vê-lo), qualquer coisa dentro dessa pasta está efetivamente oculta a todos, exceto root
.
NOTA : Estou executando esta demonstração como root
e tentando acessar a pasta comomyuser
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 myuser
, tentativas de acessar a pasta ou seu conteúdo falham:
% 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 sentido!
chmod -R 000 secret_stash
e ninguém poderá lê-lo!
1º desligado: se você deseja ocultar um arquivo de alguém: instale um sistema de detecção de intrusão no 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 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.
O diretório estará visível; O arquivo não estará visível. Lembre-se: "root" SEMPRE terá acesso a qualquer arquivo.
Juntamente com chattr
você, você pode até tornar o arquivo imutável.
sudo su
chattr + i {file}
e mesmo "root" não pode alterar o arquivo, a menos que chattr
seja revertido (e sim "root" pode fazer isso).
Algum atalho de teclado para isso?
Não, isso é algo que você precisa fazer manualmente.
Há também uma extensão para o Nautilus, chamada nautilus-hide, que permitirá ocultar qualquer arquivo ou pasta com um simples clique com o botão direito do mouse.
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+ F2e digite nautilus -q
.
'
nome do arquivo ou da pasta que contém `` espaço, não é. Basta adicionar o nome do arquivo ou pasta