GNU/Linux >> Linux Esercitazione >  >> Linux

Come determinare se una directory si trova sulla stessa partizione

In C, useresti stat() e confronta il st_dev campo. In Python, os.stat dovrebbe fare lo stesso.

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

Un altro modo è l'approccio "è meglio chiedere perdono che permesso":prova semplicemente a rinominarlo e, se fallisce, prendi il OSError appropriato e prova l'approccio della copia. cioè:

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

Questo ha il vantaggio che funzionerà anche su Windows, dove st_dev è sempre 0 per tutte le partizioni.

Nota che se vuoi effettivamente copiare e quindi eliminare il file sorgente (ad es. eseguire uno spostamento), piuttosto che limitarti a copiare, shutil.move farà già quello che vuoi:

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. Come copiare una directory nella riga di comando di Linux [Suggerimento per principianti]

  2. Come creare un collegamento a una directory

  3. Usando il comando cp nella shell linux, come posso copiare un'intera directory in un'altra directory?

  4. Come determinare il tipo di file system in modo affidabile sotto Linux?

  5. Come posso determinare la dimensione del blocco di una partizione ext3 su Linux?

Come spostare la directory principale su una nuova partizione o disco in Linux

Come convertire una directory in una partizione in Linux

Come installare il sistema operativo Haiku

Come copiare la directory su Linux

Come montare una partizione Truecrypt crittografata sempre nello stesso punto?

Come copiare un file da un'altra directory a quella corrente?