Alguém pode sugerir uma maneira inteligente de identificar todos os dmg que são criptografados?
Minha única ideia é bastante complicada. usar mdfind '(kMDItemFSName=*.dmg)'
e depois testar a resposta de hdiutil imageinfo
e registre o resultado daqueles que pedem uma senha. Graças à resposta e aos comentários, o comando a seguir executa todo o dmg por meio do hdiutil, mas não consigo descobrir como identificar os que fornecem um erro. Alguma ideia?
mdfind -0 "kMDItemFSName=*.dmg" |xargs -0 -I{} -L 1 hdiutil imageinfo {}
macos
command-line
spotlight
dmg
jakethedog
fonte
fonte
.dmg
arquivos, por exemplo usandols -l@
pode mostrarcom.apple.metadata:kMDItemDownloadedDate
não hácom.apple.metadata:kMDItemEncrypted
. Você pode ver o atributos de metadados de um arquivo usandomdls
. Então usandohdiutil imageinfo
é provavelmente a única maneira de obter diretamente do próprio arquivo. Você pode fazer o script e canalizar a saída dehdiutil imageinfo
paragrep
, etc. e processá-lo ainda mais para que a saída final seja uma lista de arquivos criptografados, etc. Tudo depende realmente do que você está tentando realizar para começar.Respostas:
No presente momento no meu disco local eu tenho 88 .dmg arquivos, três dos quais são criptografados. Antes de executar a linha de comando abaixo, eu não sabia quantos criptografados .dmg arquivos que eu tinha e se algum, onde eles estavam. Portanto, embora a linha de comando a seguir possa parecer complicada, ela deve funcionar como anunciada.
Abrir terminal e copie e cole toda a linha de comando abaixo, como está, no terminal então aperte Entrar .
Isto irá criar dois arquivos, dmg_file_list e encrypted_dmg_file_list e emita o conteúdo deste último para o Terminal. Os arquivos também podem ser abertos em um editor de texto.
Os arquivos conterão nome de caminho totalmente qualificado do .dmg arquivos seguidos por um espaço e criptografado: NÃO ou criptografado: SIM no dmg_file_list arquivo e apenas o nome de caminho totalmente qualificado do .dmg arquivos seguidos por um espaço e criptografado: SIM no encrypted_dmg_file_list Arquivo.
Você pode então excluir manualmente os dois arquivos criados pelo comando quando terminar com eles.
Nota: Uma vez que a linha de comando é executada, pode demorar um pouco para processar e produzir o conteúdo do arquivo. encrypted_dmg_file_list arquivo para o Terminal. Dependerá de quantas .dmg arquivos existem.
Aqui está a linha de comando completa mostrada com continuação de linha, portanto, certifique-se de copiar e colar toda a linha. (Você pode realmente copiar e colar a linha de comando neste formato também.)
fonte
hdiutil
mudanças no futuro. Além disso, se você usar>> dmg_file_list
você pode querer remover um arquivo já existente primeiro (ou usar> dmg_file_list
).>>
foi erro de digitação. Eu corrigi isso. Quanto a greping para mais, então eu fiz ... bem as coisas mudam e o código é quebrado, no entanto, só precisa ser corrigido então. O que eu forneci foi um exemplo prático de apenas uma maneira de alcançar o objetivo. Não é a única maneira ou, necessariamente, a melhor maneira, apenas uma maneira que funcionou no meu sistema e pode ser adaptada conforme a necessidade de quem quer que o utilize. Como exemplo, eu poderia tê-lo escrito para que o arquivo encrypted_dmg_file_list tivesse o nome completo do caminho, já que o arquivo é designado como criptografado. Eu não fiz porque é tarde e estou cansado. :)LSOpenURLsWithRole() failed with error -600 for the file /Users/user/encrypted_dmg_file_list.
alguma ideia?open
na última linha comcat
, isso listará os volumes criptografados diretamente no Terminal.cat
sugestão por patrix, eu editei a linha de comando como então não é dependente de abrir quaisquer alterações do padrão com o Launch Services. Você sempre pode abrir os arquivos manualmente em um editor de texto também.O Spotlight simplesmente não possui metadados suficientes para diferenciar as opções do sistema de arquivos armazenadas em um DMG. Em outras palavras, é como perguntar quais documentos do Pages têm palavras em francês usando apenas
mdls
. Os dados para fazer essa pesquisa não estão contidos nos metadados.O comando adequado para verificar se um arquivo de imagem específico está criptografado é
hdiutil isencrypted /path/to/dmg
Exemplo:
Saída:
fonte
Uma solução usando
mdfind -0
exargs
:fonte