GNU/Linux >> Belajar Linux >  >> Linux

Cara menentukan apakah suatu direktori berada di partisi yang sama

Di C, Anda akan menggunakan stat() dan bandingkan st_dev bidang. Dengan python, os.stat harus melakukan hal yang sama.

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

Cara lain adalah pendekatan “lebih baik meminta maaf daripada izin”—coba saja ganti namanya, dan jika gagal, ambil OSError yang sesuai dan coba pendekatan penyalinan. yaitu:

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

Keuntungannya adalah ini juga akan berfungsi di Windows, di mana st_dev selalu 0 untuk semua partisi.

Perhatikan bahwa jika Anda benar-benar ingin menyalin lalu menghapus file sumber (mis. melakukan pemindahan), daripada hanya menyalin, maka shutil.move sudah akan melakukan apa yang Anda inginkan:

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. Cara Mengonversi Direktori ke Partisi di Linux

  2. Cara membuat tautan ke direktori

  3. CentOS:Salin direktori ke direktori lain

  1. Menggunakan perintah cp di shell linux, bagaimana cara menyalin seluruh direktori ke direktori lain?

  2. Bagaimana cara menentukan tipe sistem file dengan andal di Linux?

  3. Bagaimana cara menyalin jalur direktori penyimpanan file di Linux?

  1. Cara mempartisi disk di Linux

  2. Cara Menyalin Direktori di Baris Perintah Linux [Tips Pemula]

  3. Bagaimana cara menyalin direktori ke direktori menggunakan install di bash?