In the event one copies a file or directory over an existing
file or directory is the duplicate written to the same physical
blocks in storage, or are new physical blocks written with the
old blocks marked free?
The situation in mind is using get -r to copy a remote directory,
then changing or adding a few files to the remote directory followed
by using get -r to get the directory a second time. Clearly, changed
files will require writing new blocks on the destination, but what
about files with unchanged paths and contents?
The question is motivated by concerns about limited-life storage
media such as flash.
On Sun, 17 Nov 2024 17:28:40 +0000, bp wrote:
In the event one copies a file or directory over an existing
file or directory is the duplicate written to the same physical
blocks in storage, or are new physical blocks written with the
old blocks marked free?
The situation in mind is using get -r to copy a remote directory,
then changing or adding a few files to the remote directory followed
by using get -r to get the directory a second time. Clearly, changed
files will require writing new blocks on the destination, but what
about files with unchanged paths and contents?
The question is motivated by concerns about limited-life storage
media such as flash.
From the description, it seems that you are looking for
the net/rsync port. The first time it is executed, it
will copy the directory. Additional invocations of rsync
will only copy modified files. rsync also allows you
to exclude files from being copied such as *.o which can
change quite often.
Steven G. Kargl <sgk@removetroutmask.apl.washington.edu> wrote:
On Sun, 17 Nov 2024 17:28:40 +0000, bp wrote:
In the event one copies a file or directory over an existing
file or directory is the duplicate written to the same physical
blocks in storage, or are new physical blocks written with the
old blocks marked free?
The situation in mind is using get -r to copy a remote directory,
then changing or adding a few files to the remote directory followed
by using get -r to get the directory a second time. Clearly, changed
files will require writing new blocks on the destination, but what
about files with unchanged paths and contents?
The question is motivated by concerns about limited-life storage
media such as flash.
From the description, it seems that you are looking for
the net/rsync port. The first time it is executed, it
will copy the directory. Additional invocations of rsync
will only copy modified files. rsync also allows you
to exclude files from being copied such as *.o which can
change quite often.
Your surmise is correct, but I wanted to use sftp out of familiarity.
I'm compiling net/rsync now to have a look at it, but I'm still
curious how file overwrites, whether across the net or locally, are
handled.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 379 |
Nodes: | 16 (2 / 14) |
Uptime: | 43:42:24 |
Calls: | 8,141 |
Calls today: | 4 |
Files: | 13,085 |
Messages: | 5,857,952 |