Katakanlah saya punya file /templates/apple
dan saya mau
- letakkan di dua tempat berbeda lalu
- hapus yang asli.
Jadi, /templates/apple
akan disalin ke /templates/used
DAN /templates/inuse
dan kemudian setelah itu saya ingin menghapus yang asli.
Apakah cp
cara terbaik untuk melakukan ini, diikuti oleh rm
? Atau ada cara yang lebih baik?
Saya ingin melakukan semuanya dalam satu baris jadi saya pikir akan terlihat seperti:
cp /templates/apple /templates/used | cp /templates/apple /templates/inuse | rm /templates/apple
Apakah ini sintaks yang benar?
Mengapa tidak
cp
ke lokasi 1, lalumv
ke lokasi 2. Ini menangani "menghapus" aslinya.Dan tidak, itu bukan sintaks yang benar.
|
digunakan untuk "menyalurkan" output dari satu program dan mengubahnya menjadi input untuk program selanjutnya. Yang Anda inginkan adalah;
, yang memisahkan banyak perintah.Jika Anda mengharuskan perintah individu HARUS berhasil sebelum yang berikutnya dapat dimulai, maka Anda akan menggunakan
&&
sebagai berikut:Dengan begitu, jika salah satu dari
cp
perintah gagal,rm
tidak akan berjalan.sumber
Perhatikan
cp A B; rm A
persismv A B
. Ini akan lebih cepat juga, karena Anda tidak harus benar-benar menyalin byte (dengan asumsi tujuan berada pada sistem file yang sama), cukup ganti nama filenya. Jadi kamu maucp A B; mv A C
sumber
Opsi lain adalah mengetik Ctrl+V Ctrl+Jdi akhir setiap perintah.
Contoh (ganti
#
dengan Ctrl+V Ctrl+J):Keluaran:
Ini akan menjalankan perintah terlepas dari yang sebelumnya gagal.
Sama dengan:
echo 1; echo 2; echo 3
Jika Anda ingin menghentikan eksekusi pada perintah yang gagal, tambahkan
&&
di akhir setiap baris kecuali yang terakhir.Contoh (ganti
#
dengan Ctrl+V Ctrl+J):Keluaran:
Di dalam
zsh
Anda juga dapat menggunakan Alt+Enteratau Esc+EnterbukanCtrl+V Ctrl+Jsumber
Coba ini..
cp /templates/apple /templates/used && cp /templates/apple /templates/inuse && rm /templates/apple
sumber
Menggunakan pipa terasa aneh bagi saya. Pokoknya Anda harus menggunakan
and
operator Bash logis :Jika
cp
perintah gagal, makarm
tidak akan dieksekusi.Atau, Anda dapat membuat baris perintah yang lebih rumit menggunakan
for
loop dancmp
.sumber