GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo determinar si un directorio está en la misma partición

En C, usarías stat() y compara el st_dev campo. En Python, os.stat debe hacer lo mismo.

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

Otra forma es el enfoque de "mejor pedir perdón que permiso":solo intente cambiarle el nombre y, si eso falla, tome el OSError apropiado. y pruebe el enfoque de copia. es decir:

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

Esto tiene la ventaja de que también funcionará en Windows, donde st_dev siempre es 0 para todas las particiones.

Tenga en cuenta que si realmente desea copiar y luego eliminar el archivo de origen (es decir, realizar un movimiento), en lugar de simplemente copiar, entonces shutil.move ya hará lo que desea:

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. Cómo particionar un disco en Linux

  2. Cómo copiar un directorio en la línea de comandos de Linux [Consejo para principiantes]

  3. Cómo crear un enlace a un directorio

  4. ¿Cómo determinar el tipo de sistema de archivos de manera confiable en Linux?

  5. ¿Cómo determino el tamaño de bloque de una partición ext3 en Linux?

Cómo mover el directorio de inicio a una nueva partición o disco en Linux

Cómo convertir un directorio en una partición en Linux

Cómo instalar el sistema operativo Haiku

Cómo copiar un directorio en Linux

¿Cómo montar una partición Truecrypt encriptada siempre en el mismo punto?

¿Cómo copiar un archivo de otro directorio al actual?