ich scheinen in der Lage zu sein, zumindest 260kB zu schreiben, wie dies durch 260kB von Nullen zu erzeugen und sie auf das Schreiben Umwandlung a
so kann ich sie sehen:
xattr -w myattr "$(dd if=/dev/zero bs=260000 count=1|tr '\0' a)" fred
1+0 records in
1+0 records out
260000 bytes transferred in 0.010303 secs (25235318 bytes/sec)
Und sie dann mit zurückgelesen:
xattr -l fred
myattr: aaaaaaaaaaaaaaaaaa...aaa
Und überprüfen Sie die Länge zurückgegeben:
xattr -l fred | wc -c
260009
ich vermute, dieser Akt ually eine Grenze von argmax auf der Kommandozeile:
sysctl kern.argmax
kern.argmax: 262144
Auch, weil Sie 260kB in einem xattr
speichern können, bedeutet das nicht, ist es ratsam. Ich weiß nichts über HFS +, aber auf einigen Unixy-Dateisystemen können die Attribute direkt im Inode gespeichert werden, aber wenn Sie ein bestimmtes Limit überschreiten, muss zusätzlicher Speicherplatz auf der Festplatte für die Daten reserviert werden.
---
Mit dem Aufkommen von High Sierra und APFS
HFS+
zu ersetzen, müssen Sie auf beiden Dateisysteme testen - auch sicherstellen, dass Time Machine Rücken und auch die Daten wieder her und dass Dienstprogramme wie ditto
, tar
und der Finder sie beim Kopieren/Verschieben/Archivieren von Dateien propagieren.
Denken Sie darüber nach, was passiert, wenn Sie eine markierte Datei per E-Mail versenden oder auf einen FAT-formatierten USB Memory Stick kopieren.
Ich habe auch versucht, mehrere Attribute auf einer einzigen Datei und das folgende Skript erfolgreich schrieb 1000 Attribute (genannt attr-0
, attr-1
... attr-999
), die jeweils von 260kB in einer einzigen Datei einstellen - was bedeutet, dass die Datei 260 MB effektiv trägt der Attribute:
#!/bin/bash
for ((a=1;a<=1000;a++)) ; do
echo Setting attr-$a
xattr -w attr-$a "$(dd if=/dev/zero bs=260000 count=1 2> /dev/null | tr '\0' a)" fred
if [ $? -ne 0 ]; then
echo ERROR: Failed to set attr
exit
fi
done
Diese können alle gesehen und zurück gelesen werden - ich überprüfte.
Ich benutze das 'tag' Paket in ** homebrew ** und ich liebe es. Sie können Tags sehr einfach hinzufügen, löschen und aktualisieren und sie auch im Finder sehen. –
Hallo, ich kenne das Paket, aber das funktioniert auf Standard-OS-X-Tags, die man sieht und in den Finder legt. Hier versuche ich einen neuen, angepassten Satz von Tags zu erstellen.Also muss ich 'xattr' benutzen, denke ich. In jedem Fall bleibt die Frage, wie groß die Daten im xattr sein können. –
Es scheint, als 26 in '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers definiert werden/sys/unistd.h', aber ich glaube nicht, dass Sie 26 Bits speichern können, oder sogar die Größe davon kann nicht mehr als 26 Bits sein. Ich denke, dass, weil alle umgebenden "# definiert" sind fortlaufend um 26 nummeriert. –