Gibt es irgendeinen Grund nicht Gebrauch zu verwenden --sparse=always
mit jedem Aufruf an cp
?
info cp
sagt:
‘--sparse=WHEN’ A “sparse file” contains “holes”—a sequence of zero bytes that does not occupy any physical disk blocks; the ‘read’ system call reads these as zeros. This can both save considerable disk space and increase speed, since many binary files contain lots of consecutive zero bytes. By default, ‘cp’ detects holes in input source files via a crude heuristic and makes the corresponding output file sparse as well. Only regular files may be sparse. The WHEN value can be one of the following:
...
‘always’ For each sufficiently long sequence of zero bytes in the input file, attempt to create a corresponding hole in the output file, even if the input file does not appear to be sparse. This is useful when the input file resides on a file system that does not support sparse files (for example, ‘efs’ file systems in SGI IRIX 5.3 and earlier), but the output file is on a type of file system that does support them. Holes may be created only in regular files, so if the destination file is of some other type, ‘cp’ does not even try to make it sparse.
Es heißt auch:
[...] Mit dem folgenden Alias verwendet 'cp' den vom Dateisystem unterstützten Mindestspeicherplatz.
alias cp='cp --reflink=auto --sparse=always'
Warum ist nicht --sparse=always
die Standardeinstellung?
cp
coreutils
sparse-files
Tom Hale
quelle
quelle
--reflink
, ansonsten weiß ich nicht ...cp --sparse
.info cp
enthält:with the following alias, ‘cp’ will use the minimum amount of space supported by the file system.
alias cp='cp --reflink=auto --sparse=always'
Antworten:
Es gibt einige Gründe, warum dies nicht die Standardeinstellung ist. Eine davon ist die Abwärtskompatibilität, die Leistung und nicht zuletzt das Prinzip der geringsten Überraschung.
Meines Wissens nach entsteht bei Aktivierung dieser Option ein CPU-Overhead, der möglicherweise nicht unbedingt akzeptabel ist. Außerdem ist die Abwärtskompatibilität von entscheidender Bedeutung. Der
cp
Befehl funktioniert zuverlässig ohne, es fügt ein wenig Platzersparnis hinzu, aber heutzutage ist das wirklich vernachlässigbar, zumindest in den meisten Fällen ...Ich denke, die Kommentare, die Sie erhalten haben, haben auch andere Gründe hervorgehoben.
Das Prinzip der geringsten Überraschung bedeutet, dass Sie etwas nicht unnötig ändern. Es
cp
gibt es schon seit Jahrzehnten. Eine Änderung des Standardverhaltens wird viele Veteranen verärgern.quelle