Catatan: - $USER akan mencetak nama pengguna login saat ini.
Jika Anda penasaran versi bash shell apa yang terinstal di sistem, kita dapat memeriksanya menggunakan perintah berikut:.
$ bash --versiKeluaran Versi Bash.
Membuat dan Menjalankan Skrip Bash Bas
Mari kita mulai dengan membuat file sederhana menggunakan editor pilihan Anda. Bagi saya, editor vi lebih nyaman. Untuk membuat file dapat dieksekusi, kita perlu menambahkan Shebang (!#) dan lokasi juru bahasa bash di awal skrip. Saya telah membuat teks.txt dan tambahkan ke dir bash_demo di direktori rumah saya yang berisi beberapa teks untuk tujuan demo.
$ sentuh bash_demo.SH$ vi bash_demo.SH
Tambahkan baris berikut di editor teks Anda untuk contoh demo setelah membuat file; jika belum, editor akan membuat file baru saat menulis dan keluar.
#!/bin/bashteks cp.txt /tmp/
echo “File disalin.”
Kita dapat menjalankan skrip menggunakan ./ sebelum file skrip, yang menentukan file dir saat ini.
$ ./bash_demo.SHSaat kami menjalankan skrip, kesalahan berikut akan muncul di terminal kami:.
Eksekusi awal file bash.
Saat kami membuat file secara default, pengguna tidak memiliki izin eksekusi untuk file tersebut. Untuk memberikan izin eksekusi kepada pengguna, perintah berikut harus dijalankan:.
$ chmod +x bash_demo.SHKeluaran setelah izin diberikan.
Salin hanya file dari direktori tertentu
Untuk mengambil semua file dan dir dari jalur tertentu, kami akan menggunakan for loop dalam skrip kemudian memfilter satu-satunya file menggunakan kondisi if. Pada contoh di bawah ini, kami menjalankan perintah cp hanya dieksekusi jika iteratornya adalah file yang ditentukan -f flag.
#!/bin/bashdpath = /var/log/nginx/*
untuk FILE di $dpath
melakukan
jika [[ -f $FILE ]]
kemudian
cp $FILE /home/$USER/
lain
echo “Tidak ada file di jalur yang diberikan.”
fi
selesai
Salin semua file dengan ekstensi tertentu
Dalam contoh ini, kami akan menyalin semua file dengan .ekstensi log. Kita perlu menambahkan *.masuk ke jalur sehingga iterasi satu-satunya file dengan .ekstensi log hanya untuk loop.
#!/bin/bashuntuk FILE di /var/log/nginx/*.catatan
melakukan
cp $FILE /home/$USER/
selesai
Salin semua File, Termasuk Direktori
Dalam contoh ini, kami akan menyalin semua file, termasuk direktori, secara rekursif. Untuk itu, kita hanya perlu menambahkan perintah -R cp di mana -R menentukan pengambilan direktori secara rekursif.
#!/bin/bashuntuk FILE di /var/log/*
melakukan
cp -R $FILE /home/$USER/
selesai
Salin file dari jalur yang ditentukan pengguna
Dalam contoh ini, kami akan menyalin file dari direktori yang ditentukan pengguna. Untuk melakukannya, kita akan menggunakan perintah read untuk meminta path dari pengguna kemudian memeriksa apakah pengguna menyediakan path ke dir atau tidak, yang dilakukan oleh flag -d dalam kondisi. Setelah memverifikasi dir, kami akan menggunakan loop for untuk mengulangi semua file dan dir di dalam jalur yang diberikan, lalu menyaring lagi satu-satunya file menggunakan kondisi if. Jika kondisinya cocok, perintah cp berikut akan dijalankan:.
#!/bin/bashecho “Tolong berikan path ke dir.”
baca jalur
jika [[ -d $path ]]
kemudian
untuk FILE di $path/*
melakukan
jika [[ -f $FILE ]]
kemudian
cp $FILE /home/$USER/
lain
echo “Tidak ada file di jalur yang diberikan.”
fi
selesai
lain
echo "Jalur ke dir diperlukan"
fi
Di direktori rumah saya, saya memiliki file dan direktori berikut:.
Keluaran saat memberikan jalur ke file.
Output saat memberikan jalur lokasi dir.
Setelah menjalankan file skrip, kita dapat memeriksa output di direktori yang telah ditentukan dalam skrip. Dalam kasus saya, saya telah menyalin file di direktori home saya, dan berikut adalah hasilnya:.
Kesimpulan
Pada artikel ini, kita belajar tentang cara menyalin file menggunakan skrip bash. Kita dapat menggunakan banyak operasi lain seperti loop, if-else, dll. Skrip Bash lebih efektif saat bekerja dengan banyak perintah untuk melakukan tugas tertentu. Saya harap Anda menyukai artikel ini tentang menyalin file menggunakan skrip bash.