Cara memindahkan folder di unix menggunakan mv, hanya ketika target ada di drive yang sama
10
Saya perlu memindahkan folder menggunakan perintah unix mv, tetapi hanya jika targetnya ada di drive yang sama atau sistem file yang sama. Apa yang akan menjadi pendekatan terbaik?
Apakah Anda pikir itu kompatibel di seluruh distribusi linux?
Hanya untuk menyebarkan praktik yang lebih baik, gunakan $(...)saja `...`. Yang kemudian ditinggalkan demi yang pertama.
Shahbaz
Terima kasih @ Shahbaz, baru diedit dengan rekomendasi Anda!
fedorqui
@ zapp Saya tidak tahu, harus mengujinya. Pengalaman saya dengan statmengatakan bahwa kadang-kadang sulit, setidaknya dengan SunOS. Tetapi sebagai Linux saya harap ini kompatibel. Dengan Ubuntu 12 saya baik-baik saja.
fedorqui
ini %dmenghasilkan nilai yang berbeda untuk dir yang berbeda (bahkan partisi yang sama) coba dengan /dan/tmp
Kent
2
Ini mungkin bukan solusi terbersih, tetapi Anda dapat menggunakan fakta bahwa tautan keras tidak dapat dibuat antar drive.
ln /path1/file /path2/file 2>/dev/null
if[[ $?==0]]then
rm /path1/file
fi
Jawaban:
Berdasarkan Cara memeriksa apakah dua direktori atau file milik sistem file yang sama ( /unix// ):
Jadi kamu bisa:
dan kemudian membandingkan.
Anda juga dapat menulis seperti ini:
Pilihan lain. Juga diambil dari pertanyaan Stackexchange :
sumber
$(...)
saja`...`
. Yang kemudian ditinggalkan demi yang pertama.stat
mengatakan bahwa kadang-kadang sulit, setidaknya dengan SunOS. Tetapi sebagai Linux saya harap ini kompatibel. Dengan Ubuntu 12 saya baik-baik saja.%d
menghasilkan nilai yang berbeda untuk dir yang berbeda (bahkan partisi yang sama) coba dengan/
dan/tmp
Ini mungkin bukan solusi terbersih, tetapi Anda dapat menggunakan fakta bahwa tautan keras tidak dapat dibuat antar drive.
sumber