Apakah berisiko mengganti nama folder dengan 180GB dengan mvperintah?
Kami memiliki folder /datayang berisi 180GB.
Kami ingin mengganti nama /datafolder menjadi /BD_FILESdengan mvperintah.
Apakah aman untuk melakukan itu?
Apakah berisiko mengganti nama folder dengan 180GB dengan mvperintah?
Kami memiliki folder /datayang berisi 180GB.
Kami ingin mengganti nama /datafolder menjadi /BD_FILESdengan mvperintah.
Apakah aman untuk melakukan itu?
Jawaban:
Mengubah nama pada folder aman, jika tetap dalam sistem file yang sama.
Jika itu adalah titik mount ( /datasepertinya itu bisa menjadi titik mount bagi saya, periksa ini dengan mount), maka Anda perlu melakukan sesuatu selain dari yang sederhana mvkarena mv /data /BD_FILESakan memindahkan data ke partisi root (yang mungkin bukan Anda ingin terjadi).
Anda harus meng-unmount sistem file, mengganti nama direktori yang sekarang kosong, memperbarui /etc/fstabdengan lokasi baru untuk sistem file ini, dan kemudian memasang kembali sistem file di lokasi yang diubah namanya.
Dengan kata lain,
umount /datamv /data /BD_FILES(dengan asumsi /BD_FILESbelum ada, dalam hal ini, pindahkan dulu.)/etc/fstab, mengubah titik pemasangan dari /datamenjadi/BD_FILESmount /BD_FILESIni tidak melibatkan menyalin file apa pun di sekitar, itu hanya mengubah nama direktori yang bertindak sebagai titik mount untuk sistem file.
Jika mengubah nama direktori melibatkan memindahkannya ke sistem file baru (yang akan terjadi jika /databerada di satu disk saat /BD_FILESberada di disk lain, hal yang umum dilakukan jika Anda memindahkan sesuatu ke partisi yang lebih besar, misalnya) , Saya merekomendasikan untuk menyalin data sambil membiarkan yang asli tetap utuh sampai Anda dapat memeriksa apakah salinannya ok. Anda dapat melakukan ini dengan
rsync -a /data/ /BD_FILES/
misalnya, tetapi lihat rsyncmanual untuk apa yang dilakukan dan tidak dilakukan (tidak mempertahankan tautan keras, misalnya).
Setelah folder diganti nama, Anda juga perlu memastikan bahwa prosedur yang ada (program dan pengguna yang menggunakan folder, cadangan dll.) Mengetahui perubahan nama.
mvuntuk hanya melakukan renamepanggilan sistem, tetapi karena keadaan seseorang tidak menyadari itu akan menyalin file dan menghapus yang asli. Jika saya harus benar-benar yakin hanya renamepanggilan sistem dibuat dan mvtidak akan melakukan sesuatu yang "pintar" di belakang saya, saya membuka shell Python dan menggunakan os.rename.
mkdir /BD_FILES && mount -M /data /BD_FILES && rmdir /data
rsyncitu adalah restart.
rsync -amempertahankan hampir semua metadata, tetapi bukan tautan keras, ACL, atau atribut yang diperluas (tambahkan -HAXuntuk itu).
renameperintah berbeda dengan perilaku berbeda. Saya pikir itu alasan yang cukup untuk tidak menggunakan renameperintah ketika Anda ingin memastikan apa yang akan dilakukan.
Anda tidak mengganti nama setiap file di direktori, Anda mengganti nama satu file di /. Itu karena:
Dengan demikian, mengubah nama direktori, tidak peduli berapa banyak file atau berapa banyak data di dalamnya, sepele.
Jika Anda baru saja mengganti nama (sumber dan target dalam sistem file yang sama ), itu hanya mengubah nama entri direktori. Entah berhasil dan direktori memiliki nama baru, atau gagal dalam hal ini tidak ada yang berubah * .
Jika sumber dan target berada pada sistem file yang berbeda, data perlu disalin mv. Perbedaan fitur sistem file, seperti ukuran file maksimum, batasan nama file, dll., Dapat menyebabkan masalah. Untuk menghindari masalah, salin dulu file ( cp,rsync ...) dan setelah salin selesai, hapus file di lokasi asli.
* Namun ada beberapa kasus sudut, misalnya disebutkan di bagian BUGS di man 2 ganti nama
Seperti yang orang lain katakan, mengganti nama folder tidak menimbulkan risiko yang melekat pada konten. Tetapi ada berbagai jenis risiko yang mungkin ingin Anda pertimbangkan.
Prosedur yang ada, skrip, pintasan yang ditentukan pengguna, dan konfigurasi yang merujuk pada lokasi asli dapat rusak oleh perubahan ini, dan jika jalur disimpan dalam database, misalnya, memperbarui mereka bisa menjadi pekerjaan besar.
Satu hal yang dapat Anda lakukan adalah membuat tautan simbolis untuk nama direktori baru, tetapi biarkan nama lama tetap di tempatnya untuk sementara waktu. Itu akan memberi Anda waktu untuk mengevaluasi dampak dari perubahan ini. Anda dapat menghapus sementara nama lama, melihat apakah ada masalah, dan jika ada, cukup buat ulang nama lama sehingga orang dapat terus bekerja sambil mencari tahu apa yang perlu diperbarui.
Perintah seperti ini harus melakukannya:
ln -s /data /BD_FILES
mv thing1 thing2 ; ln --symbolic ./thing2 thing1. Dengan begitu saya mendapatkan nama baru dan dapat dengan mudah menguji tidak adanya yang lama dengan menghapus symlink.
Ganti nama adalah atom. Satu-satunya risiko yang masuk akal adalah bahwa mvmemutuskan untuk menyalin segala sesuatu karena suatu alasan dan itu crash setengah jalan. Jika Anda memiliki GNU mv, mv -Takan menghapus risiko ini.
mv -Tmemberitahu mvbahwa itu pindah ke non-folder; yang akan menyebabkannya menolak untuk melakukan mkdir()yang pada gilirannya akan menyebabkannya gagal jika memindahkan folder dan memutuskan untuk menyalin karena suatu alasan.
Saya terlibat dalam mengguncang serangga mv -Tsaat mengerjakan tesis master saya bertahun-tahun yang lalu. Dulu melakukan hal yang salah pada terlalu banyak kasus tepi.
Di sisi lain, Anda memiliki data pengguna 180GB di partisi root. Anda mungkin ingin memindahkan ini dari partisi root.
mvdengan-ipilihan.