Rename file without overwriting existing files

Peter Otten __peter__ at web.de
Mon Jan 30 10:14:16 EST 2017


Chris Angelico wrote:
> On Tue, Jan 31, 2017 at 12:58 AM, Peter Otten <__peter__ at web.de> wrote:
>>> I looked at help(os.link) on Python
>>> 3.4 and the corresponding current library documentation on the web. I
>>> saw no mention of what happens when dst exists already.
>>>>>> Also, creating a hard link doesn't seem to work between different file
>>> systems, which may well be relevant to Steve's case.
>>>> In his example above he operates inside a single directory. Can one
>> directory spread across multiple file systems?
>> Yep. Try unionfs.
>> ... make ourselves some scratch space ...
> $ mkdir space modifier
> $ dd if=/dev/zero of=space.img bs=4096 count=65536
> $ mkfs space.img
> $ sudo mount space.img space
> $ dd if=/dev/zero of=modifier.img bs=4096 count=1024\
> $ mkfs modifier.img
> $ sudo mount modifier.img modifier
>> ... put some content into the base directory ...
> $ sudo -e space/demo.txt
>> ... and now the magic:
> $ unionfs modifier=RW:space=RO joiner/
> $ cd joiner
>> At this point, you're in a directory that is the union of the two
> directories. One of them is read-only, the other is read/write. It is
> thus possible to view a file that you can't hard-link to a new name,
> because the new name would have to be created in the 'modifier' file
> system, but the old file exists on the 'space' one.

Interesting example, thanks!


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /