Alterar tipo de arquivo / kMDItemContentType

0

Eu tenho dois arquivos de texto sem extensão e os tornei executáveis. Ambos estão definidos para abrir com o aplicativo Terminal. No entanto, um arquivo é mostrado como "Texto" e o outro como "arquivo unix executável".

se eu exibir os atributos de metadados com

mdls & lt; nome de arquivo & gt;

Eu posso ver o tipo de conteúdo é diferente:

arquivo 1 mostra:

...
kMDItemContentType                  = "public.unix-executable"
...

arquivo 2 mostra:

...
kMDItemContentType                  = "com.apple.traditional-mac-plain-text" 
...

Como posso definir o kMDItemContentType do arquivo 2 também para "public.unix-executable"? Existe uma linha de comando para alterá-lo?

markus
fonte

Respostas:

1

Explicitamente defini-lo dentro do próprio arquivo.

Clique com o botão direito (ou opção + clique) o arquivo & gt; Abrir com & gt; Outro ... & gt; TextEdit.

Como alternativa, você pode usar um editor de texto, como nano ou vi, no Terminal.

Definir o atributo abaixo da linha shebang

#! /bin/bash

kMDItemContentType = "public.unix-executable" 

#Rest of your shell script

Acabei de testar isso em um script na minha caixa:

njboot$ mdls /Users/njboot/bin/jpgrm 
kMDItemContentCreationDate     = 2014-06-10 06:06:53 +0000
kMDItemContentModificationDate = 2014-06-11 19:58:23 +0000
kMDItemContentType             = "public.unix-executable"
kMDItemContentTypeTree         = (
    "public.unix-executable",
    "public.data",
    "public.item",
    "public.executable"
)
njboot
fonte
Como posso editar meta atributos com nano ou edição de texto? Se eu abrir o arquivo eu só vejo o conteúdo do arquivo, não os atributos ... onde está o truque?
markus
@ markus que tipo de arquivo é esse? Eu literalmente quis dizer adicioná-lo como texto dentro do arquivo sob a presunção de que é um script de shell executável. não use nano. é só usar textedit. remova a propriedade executável antes de abri-la chmod -x /path/to/file em seguida, dentro do próprio arquivo adicionar como texto em uma nova linha (abaixo do shebang #! /bin/whatever ) kMDItemContentType = "public.unix-executable" ... uma vez feito, salve as alterações e torne-as executáveis ​​novamente chmod +x /path/to/file
njboot
É um pequeno script de shell para se conectar a um servidor via ssh, mas não tem extensão. Apenas adicionando #! / bin / bash alterou o kMDItemContentType após salvar.
markus
O engraçado é que, mesmo se eu abrir o arquivo novamente e remover "#! / Bin / bash", o kMDItemContentType manterá "public.unix-executable" nos atributos de metadados.
markus