Jika tujuan Anda adalah menjalankan perintah satu baris yang:
- Menghapus dan membuat ulang direktori
~/Desktop/foo
jika sudah ada.
- Cukup buat direktori
~/Desktop/foo
jika belum ada.
Maka Anda dapat menggunakan:
rm -r ~/Desktop/foo; mkdir ~/Desktop/foo
;
setara dengan baris baru, tetapi ini memungkinkan Anda menjalankan banyak perintah pada satu baris (yaitu, sebagai "perintah tunggal").
- Jika direktori yang Anda hapus mungkin berisi file yang hanya bisa dibaca, Anda akan memerlukan
-f
tanda untuk menghapusnya tanpa mendorong pengguna secara interaktif. Ini tidak apa-apa, tetapi saya sangat merekomendasikan untuk berhati-hati rm -rf ...
. Lihat man rm
detailnya.
- Anda membutuhkan
rm
perintah untuk menyelesaikan sebelum mkdir
perintah dijalankan; ini adalah alasan untuk menggunakan ;
bukan &
. (Perintah sebelumnya &
berjalan secara tidak sinkron di latar belakang.)
- Anda memerlukan
mkdir
perintah untuk dijalankan ketika rm
perintah berhasil; ini adalah alasan untuk menggunakan ;
bukan ||
.
- Anda memerlukan
mkdir
perintah untuk dijalankan ketika rm
perintah gagal (biasanya kegagalan berarti direktori belum ada); ini adalah alasan untuk menggunakan ;
bukan &&
.
- The
rm
perintah mungkin gagal bahkan ketika direktori sudah ada, dalam hal ini mkdir
perintah akan gagal juga, tapi pesan kesalahan akan masuk akal dan mungkin ada tidak perlu menambahkan langkah pengecekan tengah untuk foo
keberadaan 's sebelum mencoba untuk menciptakannya.
Lihat 3.2.3 Daftar dari Perintah dalam Pedoman Bash Reference untuk informasi lebih lanjut dan penjelasan tentang ;
, &
, ||
, dan &&
operator.
Seperti yang disarankan muru (dan Rinzwind diuraikan ), saya sarankan Andarsync
melihat apakah itu akan memenuhi kebutuhan cadangan Anda. Ada beberapa panduan tambahan yang bermanfaat di halaman dokumentasi rsync , serta panduan rsync Ubuntu ini .
mengapa mkdir tidak memiliki opsi ini?
mkdir
menciptakan direktori ("mk" adalah singkatan dari "make" ). Untuk itu juga menghapus direktori secara rekursif dan semua file di dalamnya akan buruk, karena itu akan melanggar prinsip paling tidak heran dengan cara yang mungkin akan menyebabkan hilangnya data.
rmdir
bahkan tidak menghapus direktori yang memiliki file (non-direktori) di dalamnya. rm
memiliki -r
opsi, yang masuk akal karena rm
diharapkan untuk menghapus file (yang tujuannya, sehingga bahaya yang melekat adalah intuitif dan pengguna biasanya tahu untuk berhati-hati ketika menjalankan rm
perintah).
foo
seperti di hapus semua konten itu?mkdir
memiliki-p
opsi yang mengabaikan jika direktori ada.