Ich gebe zu, dass ich hier mehrere Fragen zu einer zusammenfasse, also verzeihen Sie mir bitte und versuchen Sie, mich nicht dafür zu klopfen.
Ich bin neu bei Mac, aber ich versuche, eine meiner Java-Anwendungen auf OS X zu portieren. Unter Windows verwendet es die Seriennummer der Festplatte für etwas, und ich möchte mit dem Terminal auf dem Mac das Gleiche tun!
Das Naheliegende, was ich finden kann, ist die Volume-UUID mit diskutil info ...
, was in Ordnung ist (solange dies immer gleich bleibt?): Meine Hauptfrage ist also, welches Volume ich verwenden soll, da drei angezeigt werden, wenn ich tippe diskutil list
? Natürlich muss es eine UUID haben, aber ich möchte auch das Volume verwenden, das sich am wenigsten ändern wird, was für mich das mit dem Betriebssystem zu sein scheint!
Ich würde also gerne wissen, welches Volume für mich zu diesem Zweck am sichersten ist und ob es auf verschiedenen Computern unterschiedlich ist - wie ich es finde!
Vielen Dank im Voraus
Öffnen Sie Terminal.app und führen Sie Folgendes aus df -h /
:
% df -h /
Filesystem Size Used Avail Capacity Mounted on
/dev/disk1s2 111Gi 75Gi 36Gi 68% /
Auf meinem Rechner ist mein OS-Laufwerk eingeschaltet /dev/disk1s2
. Mit diesen Informationen können Sie die Festplattendienstprogramm-App verwenden und herausfinden, auf welchem physischen Laufwerk sich Ihr Betriebssystem befindet:
Wenn diskutil
Sie von der Befehlszeile aus Ihr Betriebssystemlaufwerk verwenden, entspricht dies dem, was df
Ihnen die Befehlsausgabe gegeben hat:
% diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.1 GB disk0
1: EFI 209.7 MB disk0s1
2: Apple_HFS Nymeria 499.2 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *120.0 GB disk1
1: EFI 209.7 MB disk1s1
-> 2: Apple_HFS Untitled 1 119.2 GB disk1s2
3: Apple_Boot Recovery HD 650.0 MB disk1s3
Wenn Sie nicht wissen, wie UNIX-ähnliche Betriebssysteme (OS X) ein Laufwerk partitionieren, sehen Sie sich diesen Wikipedia-Artikel an .
Und wenn Sie alle Details für die Root-Partition direkt im Terminal abrufen möchten, führen Sie es aus
diskutil info $(df / | tail -1 | cut -d' ' -f 1)
Diese Shell-Funktion teilt Ihnen den Namen des Volumes mit, das eine bestimmte Datei (oder einen Ordner usw.) enthält.
function volumeOfFile {
local result=$(
/bin/df "$1" \
| /usr/bin/sed -e 1d -e 's, *, ,g' -e s,/Volumes/,, \
| cut -d' ' -f 9-
)
if [[ $result == / ]] ; then
/bin/ls -l /Volumes \
| /usr/bin/sed -n -e 's, *, ,g' -e 's, -> /$,,p' \
| cut -d' ' -f 9-
else
echo "$result"
fi
}
Beispiele:
$ volumeOfFile /System
Mac HD
$ volumeOfFile /Volumes/Other/Users
Other
$
Ich würde gerne eine einfachere Möglichkeit kennen, dies zu tun, oder eine Möglichkeit, dies in Swift zu tun.
Andy
diskutil info ...
oder glauben Sie, dass ich den Befehl in Java ausführen und das, was er zurückgibt, in einem anderen Befehl für dendiskutil info
Teil verwenden muss?Aaron See
Andy
kein Hang
diskutil info $(df -h / | tail -1 | cut -d' ' -f 1)
?Andy