Recupero dell'attributo "Versione" di un file dell'applicazione OSX tramite Bash


0

Inizialmente stavo tentando di farlo in Java utilizzando la classe UserDefinedFileAttributeView ma si scopre che è disponibile solo su computer Windows (Questo è in esecuzione su OSX)

Quindi ho cambiato marcia con la speranza che recuperare le informazioni tramite uno script sarebbe la via più semplice ma sembra non essere così semplice come mi aspettavo.

Come si farebbe per recuperare il numero di versione di un file dell'applicazione (attributo file) usando Bash?

Ho già esaminato, statma questo restituisce solo le informazioni di base sul file. Ho anche esaminato, xattrma non sono riuscito a ottenere questo per restituire l'attributo "Versione".

Qualsiasi suggerimento sarebbe molto apprezzato!


2
Dove pensi che queste informazioni vengano archiviate? Si prega di inviare un esempio.
CodeGnome,

1
La tua Q manca di dettagli. Avere il vostro letto, compreso, e ha cercato di scrivere un apposito "MCVE" -> stackoverflow.com/help/mcve ? In bocca al lupo.
shellter il

Per aggiungere ad altri commenti, è difficile rispondere alla domanda come chiesto, la cosa migliore da fare sarebbe fare un passo indietro e dichiarare perché stai cercando di fare quello che stai cercando di fare.

@CodeGnome Il numero di versione è facilmente visibile facendo clic con il pulsante destro del mouse su un file in OS X e visualizzando le sue "informazioni" non sono sicuro di quanti dettagli siano necessari. Conosco bene gli script di Bash e mi chiedo se esiste un modo per recuperare questo valore tramite uno script di Bash.
CodeBreaker il

Risposte:


1

Se vuoi ottenere la versione di un'applicazione, che è quella mostrata nella finestra di dialogo Ottieni informazioni sul Finder, usa questa:

plutil -p /Applications/<Application Name>.app/Contents/Info.plist | grep CFBundleShortVersionString

Questo ti mostrerà le informazioni sulla versione.

Per maggiori informazioni vedi questa risposta.


Grazie anche a questo ha funzionato perfettamente. Ho anche pubblicato un'alternativa di seguito.
CodeBreaker il

1
Grazie, a beneficio di chiunque incontri questa domanda, suggerirei di aggiornare la domanda per chiarire che non stai cercando di ottenere la versione di un file dal filesystem ma la versione di un'applicazione OSX. Se guardi le informazioni del finder per un file arbitrario sul filesystem vedrai che non ha una versione.

Ho aggiornato la mia domanda in modo appropriato. Non avevo familiarità con l'attributo della versione ma so vedere cosa stai dicendo. È stata una svista da parte mia
CodeBreaker,

L'argomento "-p" per plutil non è valido per alcune versioni precedenti di OS X. È possibile ottenere lo stesso risultato /usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" /Applications/<APPLICATION NAME>.app/Contents/Info.plist, che stamperà semplicemente il valore senza la necessità di eseguire grep su nulla.
Kent,

2

Puoi usare defaultsper recuperare chiavi specifiche:

VERSION=$(defaults read /Applications/AppName.app/Contents/Info.plist CFBundleShortVersionString)
echo $VERSION

0

Ho continuato a scavare e sembra che una possibile soluzione sia usare mdls, con l'attributo 'kMDItemVersion'.

Esempio:

Applications: user$ mdls -name kMDItemVersion Xcode.app
kMDItemVersion = "7.2"

Se qualcun altro ne ha bisogno la documentazione è qui: mdls


-1

Generalmente Linux non supporta un attributo della versione del file. Tuttavia è possibile utilizzare l' mimetypeutilità per accedere all'estensione del file e digitare ...

esempio

mimetype -d path_to_my_file

Mi riferisco al tag "Version" e non a File Versioning stesso.
CodeBreaker il

Linux non ha questo ... Linux è un po 'diverso da Windows ... Uso Linux da anni ormai ... Non ne sono consapevole..mi scuse ...

Sta chiedendo di OSX (come da osservazione tra parentesi nel primo paragrafo).

hai provato l'utilità mimetype in linux? .. Ho esplorato alcuni degli argomenti dei parametri di base ma senza fortuna ....
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.