GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So ermitteln Sie, ob sich ein Verzeichnis auf derselben Partition befindet

In C würden Sie stat() verwenden und vergleichen Sie die st_dev aufstellen. In Python os.stat sollte dasselbe tun.

import os
def same_partition(f1, f2):
    return os.stat(f1).st_dev == os.stat(f2).st_dev

Eine andere Möglichkeit ist der Ansatz „Lieber um Verzeihung als um Erlaubnis bitten“ – versuchen Sie einfach, es umzubenennen, und wenn das fehlschlägt, fangen Sie den entsprechenden OSError ab und versuchen Sie den Kopieransatz. dh:

import errno
try:
    os.rename(source, dest):
except IOError, ex:
    if ex.errno == errno.EXDEV:
        # perform the copy instead.

Das hat den Vorteil, dass es auch unter Windows funktioniert, wo st_dev für alle Partitionen immer 0 ist.

Beachten Sie, dass, wenn Sie die Quelldatei tatsächlich kopieren und dann löschen möchten (dh eine Verschiebung durchführen), anstatt nur zu kopieren, shutdown.move bereits das tut, was Sie wollen:

Help on function move in module shutil:

move(src, dst)
    Recursively move a file or directory to another location.

    If the destination is on our current filesystem, then simply use
    rename.  Otherwise, copy src to the dst and then remove src.

Linux
  1. So kopieren Sie ein Verzeichnis in der Linux-Befehlszeile [Anfängertipp]

  2. So konvertieren Sie ein Verzeichnis in eine Partition unter Linux

  3. CentOS:Verzeichnis in ein anderes Verzeichnis kopieren

  4. Wie bestimme ich die Blockgröße einer ext3-Partition unter Linux?

  5. Wie kopiert man Dateien unter Beibehaltung des Verzeichnispfads in Linux?

So verschieben Sie das Home-Verzeichnis auf eine neue Partition oder einen neuen Datenträger in Linux

So konvertieren Sie ein Verzeichnis in eine Partition unter Linux

So installieren Sie das Haiku-Betriebssystem

So kopieren Sie das Verzeichnis unter Linux

Wie wird eine verschlüsselte Truecrypt-Partition immer am selben Punkt gemountet?

Wie kopiert man eine Datei aus einem anderen Verzeichnis in das aktuelle?