Apakah mungkin untuk memeriksa apakah ada direktori dan menghapusnya jika ada, di Unix menggunakan satu perintah? Saya memiliki situasi di mana saya menggunakan tugas 'sshexec' ANT di mana saya hanya dapat menjalankan satu perintah di mesin jarak jauh. Dan saya perlu memeriksa apakah direktori ada dan menghapusnya ...
108
mkdir -p
akan mengabaikan kesalahan jika sudah ada.Jawaban:
Dengan asumsi
$WORKING_DIR
diatur ke direktori ... satu-baris ini harus melakukannya:(jika tidak, ganti saja dengan direktori Anda)
sumber
Mengapa tidak digunakan saja
rm -rf /some/dir
? Itu akan menghapus direktori jika ada, jika tidak lakukan apa-apa. Tidak sepertirm -r /some/dir
perintah ini, perintah tidak akan macet jika folder tidak ada.sumber
Mencoba:
EDIT : Ini akan berfungsi jika Anda dapat menjalankan bash di mesin jarak jauh ....
EDIT 2 : Dalam bash,
[ -d something ]
periksa apakah ada direktori yang disebut 'sesuatu', mengembalikan kode sukses jika ada dan merupakan direktori. Merangkai perintah dengan && menjalankan perintah kedua hanya jika perintah pertama berhasil. Jadi[ -d somedir ] && command
jalankan perintah hanya jika direktori tersebut ada.sumber
[ -d /test ] && rmdir /test
(atau rm -rf / test jika tidak akan kosong dan Anda ingin menghapus semua isinya)Ini satu lagi liner:
sumber