Cara Menyalin File Menggunakan Perintah "instal" di Linux
Diterbitkan: 2022-01-29
install adalah perintah penyalinan file serbaguna di Linux dan macOS. Ini sempurna untuk pengguna daya yang mencari efisiensi. Baca artikel ini untuk mengetahui cara bekerja lebih cerdas—bukan lebih keras.
Tunggu—Bukan Untuk Menginstal Perangkat Lunak?
Perintah install mungkin memiliki nama yang paling menyesatkan dari semua perintah Linux. Itu tidak benar-benar menginstal perangkat lunak apa pun. Jika Anda mencoba menginstal paket perangkat lunak dari baris perintah di Ubuntu atau distribusi berbasis Debian lainnya, gunakan perintah apt-get . Pada distribusi Linux lainnya, gunakan alat manajemen paket distribusi Linux Anda—misalnya, dnf di Fedora atau zypper di openSUSE.
Jadi Apa yang Dilakukan Instal?
Singkatnya, install menggabungkan elemen dari perintah cp (salin), chown (ubah pemilik), chmod (ubah mode), mkdir (buat direktori), dan strip (simbol strip). Ini memungkinkan Anda menggunakan fungsi dari semua itu dalam satu tindakan tunggal.
Perintah install dapat:
- Salin file seperti perintah
cp. - Pilih apakah akan menimpa file yang ada.
- Buat direktori target jika tidak ada, seperti
mkdir. - Tetapkan flag izin pengguna dari file, seperti perintah
chmod. - Atur pemilik file, seperti perintah
chown. - Hapus bagasi yang tidak penting dari file yang dapat dieksekusi, seperti perintah
strip.
Terlepas dari semua fungsi itu, perintah install tidak memiliki terlalu banyak opsi untuk dihadapi.

Kapan Anda Akan Menggunakannya?
Perintah install mungkin tidak akan digunakan setiap hari. Ini berguna, tetapi hanya untuk situasi tertentu. Satu skenario di mana install menjadi miliknya sendiri adalah pengembangan perangkat lunak. Katakanlah Anda sedang memprogram utilitas baru. Anda harus melakukan pengujian di luar lingkungan pengembangan. Untuk melakukan itu, Anda perlu menyalin file program baru ke direktori pengujian. Direktori pengujian mungkin perlu dibuat, dan Anda perlu mengatur izin dan kepemilikan yang benar untuk file tersebut.
Karena pengembangan adalah aktivitas berulang, Anda dapat melakukan urutan tindakan ini berkali-kali. Perintah install melakukan semua pekerjaan berat untuk Anda. Terakhir, ketika utilitas baru Anda siap digunakan, Anda dapat menggunakan install untuk menyalinnya dengan izin yang benar ke lokasi kerja terakhirnya.
Sebuah contoh
Seorang programmer sedang mengerjakan utilitas baru seperti itu, yang disebut ana . Ini terdiri dari file biner yang dapat dieksekusi dan database. Setelah pengujian, itu harus disalin ke /usr/local/bin agar tersedia untuk semua pengguna sistem Linux. Anda harus mengganti nama file dan jalur direktori dalam contoh kami untuk file dan jalur yang Anda gunakan di komputer saat Anda menggunakan install .
Sampai siap untuk dirilis, itu akan diuji di direktori bernama ~/test/ana . Anggota grup geek akan memiliki izin membaca dan mengeksekusi. Pengguna lain juga akan membaca dan menjalankan izin. Perintah install menggunakan representasi numerik yang sama untuk izin seperti yang dilakukan chmod . Programmer kami telah memutuskan bahwa izin harus diatur ke:
- Pemilik: Baca, tulis, dan jalankan.
- Grup: Baca dan jalankan.
- Lainnya: Jalankan saja.
Cara Menggunakan Perintah install
Direktori kerja programmer fiksi kami adalah ~/work . Dia telah menulis program, mengkompilasinya, dan menghasilkan biner yang disebut ana . Dia sudah membuat file database yang bekerja Words.db ana Jadi kedua file siap untuk pengujian. Mari kita lihat mereka:
ls -l ana Words.db

Utilitas ana yang baru saja dia tulis membuat anagram dari frasa yang disediakan di baris perintah. Pengujian verifikasi cukup mudah.

Programmer kami telah memanggil ana dengan frasa "biskuit" dan semuanya tampak baik-baik saja. Dia sekarang ingin menyalin dua file ini ke direktori ~/test/ana untuk melihat apakah utilitas baru berfungsi dengan benar jauh dari lingkungan pengembangan. Dia mengeluarkan perintah berikut:
install -D -v ana Words.db -t ~/test/ana

Opsi yang digunakan pada baris perintah adalah:
- D : Buat direktori, termasuk direktori induk, jika diperlukan.
- v : Verbose, daftar setiap direktori saat dibuat dan setiap salinan file saat dijalankan.
- t : Direktori sasaran.
Kita dapat melihat bahwa install membuat direktori ~/test , dan kemudian membuat direktori ~/test/ana . File terdaftar satu per satu saat disalin ke direktori target.
Mencantumkan file di ~/test/ana mengonfirmasi bahwa mereka telah disalin dengan benar.
ls -l

Langkah selanjutnya adalah menguji utilitas ana dengan menjalankannya di direktori ~/test/ana .

Utilitas beroperasi seperti yang diharapkan, yang sangat bagus. Namun, izinnya tidak benar. Persyaratannya adalah menyetel anggota geek grup agar memiliki izin membaca dan mengeksekusi, dan pengguna lain hanya memiliki izin eksekusi.
Kami dapat mengatasi kedua masalah tersebut dengan cukup sederhana dengan perintah berikut. Perhatikan penggunaan sudo untuk menjalankan perintah dengan izin root. Opsi -o dan -g dan opsi memerlukan ini. Kami akan dimintai kata sandi ketika kami mengeluarkan perintah.
sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

- Opsi
-b(cadangan) membuat cadangan file sebelum ditimpa. - Opsi
-S(akhiran) menentukan akhiran untuk file cadangan. Jika Anda tidak memberikan akhiran~(tilde) digunakan. Kami memintainstalluntuk menggunakan akhiran.bak. - Kami mengatur pemilik file menjadi
davemenggunakan opsi-o(pemilik). - Opsi
-g(grup) memerlukan nama grup. Ini menjadi grup pemilik file. Grup yang akan kita gunakan disebutgeek. - Opsi
-m(mode) mengatur mode file untuk file, menggunakan sintaks numerikchmodstandar.
Kita tidak perlu lagi menggunakan opsi -D (buat direktori), karena kita tahu direktori pengujian sudah ada. Kami juga menghilangkan opsi -v (verbose). Mencantumkan file di direktori ~/test/ana kami menunjukkan detail file kepada kami:
ls -l

Ini menegaskan bahwa semua persyaratan kami telah dipenuhi.

- File telah disalin ke direktori pengujian.
- Izin telah diatur dengan benar.
-
daveadalah pemilik file. - Grup
geekadalah grup pemilik dari dua file. - Salinan cadangan telah dibuat untuk setiap file, yang disebut ana.bak dan Words.db.bak.
Semua itu dicapai melalui penggunaan satu perintah. Rapi.
Programmer kami membuat beberapa perubahan terakhir pada utilitas dan mengkompilasi ulang. File yang telah diubah perlu disalin ke direktori ~/test/ana dari direktori ~/work . Kita dapat melakukan ini dengan menggunakan opsi -C (bandingkan). Jika file sumber dan file target sama, file sumber tidak akan disalin.
sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

Daftar file di direktori target menunjukkan kepada kita bahwa ukuran file dari file ana telah berubah. Ini lebih besar dari file ana.bak . Stempel waktu pada ana juga telah berubah. Perubahan ini karena versi baru file telah disalin di sini.
ls -l

Ukuran file dan stempel waktu file Words.db tidak berubah. Tidak ada perubahan yang dilakukan pada file Words.db , jadi file tersebut tidak disalin. Pada proyek dengan banyak file, opsi -C (bandingkan) dapat menghemat banyak waktu dan hard drive churn, dengan hanya menyalin file-file yang telah diubah.
Pemrogram kembali menguji bahwa utilitas ana terus beroperasi.
Saatnya menggunakan install untuk menyalin file ke /usr/local/bin . Ini akan membuat utilitas baru tersedia untuk semua pengguna komputer Linux ini. Kita tahu bahwa /usr/local/bin ada, jadi kita tidak perlu membuat direktori itu. Kita dapat menggunakan versi modifikasi dari perintah terakhir kita.
Kami telah mengubah direktori target menjadi /usr/local/bin . Kami telah menghapus opsi -C (bandingkan) karena belum ada salinan file-file ini di direktori target, jadi tidak ada yang bisa dibandingkan. Demikian juga, tidak ada yang perlu dicadangkan, jadi kami dapat menghapus opsi -b (cadangan) dan opsi -S (akhiran).
sudo install -o dave -g geek -m 751 dan Words.db -t /usr/local/bin

Kami dapat mencantumkan bahwa file telah tiba di /usr/local/bin :
ls -l

Dan sebagai tes terakhir, mari kita ubah direktori ke direktori home kita dan lihat apakah kita dapat memanggil utilitas baru kita dari sana.

Perhatikan bahwa kita tidak perlu mengawali perintah ana dengan ./ yang artinya dijalankan dari /usr/local/bin . Misi selesai.
Kami menyebutkan bahwa instal dapat menghapus tabel simbol yang berlebihan dan bagasi lain dari dalam file biner, untuk mengurangi ukurannya. Ayo lakukan itu sekarang. Perhatikan bahwa perintah di bawah ini tidak termasuk Words.db. Ini karena Words.db adalah file database, bukan biner yang dapat dieksekusi. Untuk menyalin dan mengecilkan file biner ana kita dapat menggunakan perintah berikut. Kami telah menambahkan opsi -s (menyusut) dengan huruf kecil “s.” Kami telah menambahkan kembali opsi -b (cadangan) dan opsi -S (akhiran), dengan huruf besar “S.”
sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin

Mencantumkan file di /usr/local/bin memungkinkan kita untuk membandingkan ukuran file ana dengan versi cadangannya. File ana telah dikurangi menjadi hampir 60% dari ukuran sebelumnya.
ls -l /usr/local/bin

Kesimpulan
Perintah install melayani penggunaan yang cukup khusus. Bagi banyak orang itu tidak akan digunakan hari demi hari, atau mungkin dari bulan ke bulan. Meskipun demikian, perintah install adalah alat yang baik untuk dikenal dan dimiliki di gudang trik Anda. Untuk saat-saat ketika Anda membutuhkannya, itu menghargai kurva belajar Anda dengan peningkatan efisiensi, kesederhanaan, dan penekanan tombol yang lebih sedikit.
| Perintah Linux | ||
| File | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · ketik · ganti nama · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konversi · rclone · rusak · srm | |
| Proses | alias · layar · atas · bagus · renice · kemajuan · strace · systemd · tmux · chsh · sejarah · di · batch · gratis · yang · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · batas waktu · dinding · ya · bunuh · tidur · sudo · su · waktu · groupadd · usermod · grup · lshw · shutdown · reboot · hentikan · matikan · passwd · lscpu · crontab · tanggal · bg · fg | |
| Jaringan | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
TERKAIT: Laptop Linux Terbaik untuk Pengembang dan Penggemar
