Especifique novos padrões para arquivos ocultos

3

É possível especificar um novo padrão para combinar arquivos e pastas que desejo ocultar do gerenciador de arquivos de um sistema operacional (Explorer, Finder, etc)?

Ao usar alguns editores (no meu caso Emacs), serão criados backups automáticos que não são ocultos por padrão na interface normal do usuário do sistema. Seria útil poder especificar um novo padrão para corresponder a arquivos / pastas ocultos, como

((\.|_).+)| ; normal hidden files in *nix and dos, respectively
.*~         ; emacs backup files
#.+#        ; emacs autosave files

Isso é possível, e (se sim) como isso pode ser feito? Eu gostaria de soluções para todas as plataformas, se possível.

    
por Sean Allred 04.04.2013 / 20:35

4 respostas

3

Sua pergunta dizia que você queria ocultar os arquivos do Finder ou do Explorer. Eu sou um velho mal-humorado, então não sei o que são. Eu uso bash e ls em um xterm como meu "explorador de arquivos". ;]]

bash tem uma variável de ambiente que você pode definir chamada GLOBIGNORE . Eu não tentei, mas o man page diz,

A colon-separated list of patterns defining the set of filenames to be ignored by pathname expansion. If a filename matched by a pathname expansion pattern also matches one of the patterns in GLOBIGNORE, it is removed from the list of matches.

Isso deve abranger coisas como autocompletar dentro do próprio bash , mas eu não sei se outros programas estão atentos ao GLOBIGNORE envvar.

ls também é configurável. Em seu alias para ls , coloque uma combinação de --hide='.*~' (se ainda quiser vê-los com ls -a ) ou --ignore='#.*' . Ou você pode usar --color=auto e usar dircolors para definir o LS_COLORS var como algo que não se destaca (para que você ainda possa vê-los, mas eles não chamam sua atenção.)

    
por 23.04.2013 / 22:18
3

Não, a definição de um arquivo oculto não é configurável na maioria dos sistemas operacionais. O Windows usa um atributo de arquivo e os sistemas baseados em Unix codificam com firmeza a convenção de ponto em todo o sistema operacional e nas ferramentas.

No entanto, é possível personalizar o Emacs para ocultar os arquivos.

(setq backup-directory-alist
      '((".*" . ,temporary-file-directory)))
(setq auto-save-file-name-transforms
      '((".*" ,temporary-file-directory t)))

Isso colocará todos os arquivos de backup e salvamento automático do Emacs em seu diretório temporário do sistema, fora do seu caminho. Para obter mais informações, consulte Diretório de backup no Wiki do Emacs.

Outras ferramentas fornecem recursos semelhantes, mas não há convenção universal, portanto, você precisará verificar a documentação e configurar cada uma individualmente.

    
por 19.04.2013 / 00:54
0

Bem, você pode tentar um hack para o OSX ou outro * nix. Ele não é elegante e pode causar outros problemas, mas você pode simplesmente escrever um pequeno script que monitore um diretório para arquivos que correspondam ao seu padrão e renomeie-os para arquivos de ponto. Se você executar este script como um cronjob, todos os arquivos correspondentes serão renomeados para os ocultos. Por exemplo:

#!/bin/env bash
while true; do 
  find ~/ -name "*~" -o -name "\#*\#"| ## find files matching your pattern
   while IFS= read -r n; do            ## save each file as $n
     d='dirname $n';                   ## $d is the directory $n was found in
     b='basename $n';                  ## $b is the name of the file, no path
     mv "$n" "$d/.$b";                 ## rename it as a hidden file
     sleep 1;                          ## wait one second
   done;
done

Se você salvar isso como ~/renamedot.sh e torná-lo executável ( chmod a+x ~/renamedot.sh ) Você pode criar um crontab (executar cron -e ) assim:

@reboot /Users/your_user/renamedot.sh &

Agora, esse script será executado como um daemon e renomeará automaticamente todos os arquivos correspondentes ao padrão para arquivos de pontos ocultos.

AVISO: Esta não é uma boa ideia. Os programas que geram esses arquivos e podem depender deles não mais os encontrarão desde que foram renomeados. Por exemplo, emacs ' M-X recover-this-file não funcionará mais porque seu backup não será encontrado. Você sempre pode apontar para o arquivo renomeado manualmente, é claro, mas pode não ser tão fácil em outros casos. Então, use a seu próprio risco.

    
por 21.04.2013 / 16:47
0

Não é 100% automático, mas talvez você possa usar o link do Pathfinder 6

Você pode obter informações do arquivo com CMD + I e marcar o atributo Invisible da caixa de seleção.

O arquivo desaparecerá no Pathfinder, Finder, mas ainda presente e intocado (confirmado com ls). Eu não sei exatamente o que faz o Pathfinder atrás da cena para tornar o arquivo invisível, mas funciona.

    
por 23.04.2013 / 22:41