Linux'ta “install” Komutunu Kullanarak Dosyaları Kopyalama
Yayınlanan: 2022-01-29 install
, Linux ve macOS'ta çok yönlü bir dosya kopyalama komutudur. Verimlilik arayan uzman kullanıcılar için mükemmeldir. Daha fazla değil, daha akıllı çalışmayı keşfetmek için bu makaleyi okuyun.
Bekleyin—Yazılım Yüklemek İçin Değil mi?
install
komutu, herhangi bir Linux komutu arasında en yanıltıcı ada sahip olabilir. Aslında herhangi bir yazılım yüklemez. Ubuntu veya başka bir Debian tabanlı dağıtımdaki komut satırından bir yazılım paketi kurmaya çalışıyorsanız, apt-get
komutunu kullanın. Diğer Linux dağıtımlarında, bunun yerine Linux dağıtımınızın paket yönetim aracını kullanın; örneğin, Fedora'da dnf
veya openSUSE'de zypper
.
Peki Kurulum Ne Yapar?
Özetle, install
cp
(kopyala), chown
(sahibi değiştir), chmod
(mod değiştir), mkdir
(dizin oluştur) ve strip
(şerit sembolleri) komutlarından öğeleri birleştirir. Tüm bunların işlevlerini tek bir işlemde kullanmanıza olanak tanır.
install
komutu şunları yapabilir:
-
cp
komutu gibi dosyaları kopyalayın. - Mevcut dosyaların üzerine yazıp yazılmayacağını seçin.
- Mevcut değilse,
mkdir
gibi hedef dizini oluşturun. - Tıpkı
chmod
komutu gibi, dosyaların kullanıcı izin bayraklarını ayarlayın. - Tıpkı
chown
komutu gibi dosyaların sahibini belirleyin. - Yürütülebilir dosyalardan gerekli olmayan bagajları
strip
komutu gibi kaldırın.
Tüm bu işlevselliğe rağmen, install
komutunun uğraşacak çok fazla seçeneği yoktur.
Ne Zaman Kullanırsın
install
komutu muhtemelen her gün kullanılmayacaktır. Yararlıdır, ancak yalnızca belirli durumlar için. install
kendi başına geldiği bir senaryo, yazılım geliştirmedir. Diyelim ki yeni bir yardımcı program programlıyorsunuz. Geliştirme ortamının dışında test yapmanız gerekecek. Bunu yapmak için yeni program dosyalarını bir test dizinine kopyalamanız gerekir. Test dizininin oluşturulması gerekebilir ve dosyalar için doğru izinleri ve sahipliği ayarlamanız gerekir.
Geliştirme yinelemeli bir etkinlik olduğundan, bu eylem dizisini birçok kez gerçekleştirebilirsiniz. install
komutu sizin için tüm ağır işleri halleder. Son olarak, yeni yardımcı programınız dağıtılmaya hazır olduğunda, doğru izinlerle son çalışma konumuna kopyalamak için install
kullanabilirsiniz.
Bir örnek
Bir programcı, ana
adlı yeni bir yardımcı program üzerinde çalışıyor. Yürütülebilir bir ikili dosya ve bir veritabanından oluşur. Testten sonra, Linux sisteminin tüm kullanıcıları için kullanılabilir hale getirmek için /usr/local/bin
kopyalanmalıdır. install
kullandığınızda bilgisayarınızda kullanmakta olduğunuz dosyalar ve yollar için örneğimizdeki dosya adlarını ve dizin yollarını değiştirmeniz gerekecektir.
Yayınlanmaya hazır olana kadar ~/test/ana
adlı bir dizinde test edilecektir. geek
grubunun üyeleri okuma ve yürütme izinlerine sahip olacak. Diğer kullanıcılar da okuma ve yürütme izinlerine sahip olacaktır. install
komutu, izinler için chmod
ile aynı sayısal gösterimi kullanır. Programcımız izinlerin şu şekilde ayarlanması gerektiğine karar verdi:
- Sahip: Oku, yaz ve yürüt.
- Grup: Oku ve yürüt.
- Diğerleri: Yalnızca yürütün.
install
Komutu Nasıl Kullanılır
Kurgusal programcımızın çalışma dizini ~/work
. Programı yazdı, derledi ve ana
adında bir ikili dosya üretti. Words.db
ana
dosyasını zaten oluşturdu. Yani her iki dosya da test için hazır. Onlara bir göz atalım:
ls -l ana Words.db
Az önce yazdığı ana
yardımcı program, komut satırında sağlanan bir ifadeden anagramlar oluşturur. Doğrulama testi oldukça basittir.
Programcımız ana
"bisküvi" ifadesiyle çağırdı ve her şey yolunda görünüyor. Şimdi, yeni yardımcı programın geliştirme ortamından uzakta doğru şekilde çalışıp çalışmadığını görmek için bu iki dosyayı ~/test/ana
dizinine kopyalamak istiyor. Aşağıdaki komutu verir:
-D -v ana Words.db -t yükleyin ~/test/ana
Komut satırında kullanılan seçenekler şunlardı:
- D : Gerekirse üst dizinler dahil dizinler oluşturun.
- v : Ayrıntılı, her dizini yapıldığı gibi listeleyin ve her dosya kopyası gerçekleştirildiği gibi.
- t : Hedef dizin.
install
~/test
dizinini oluşturduğunu ve ardından ~/test/ana
dizinini oluşturduğunu görebiliriz. Dosyalar, hedef dizine kopyalandıkça birer birer listelenir.
Dosyaları ~/test/ana
içinde listelemek, bunların doğru şekilde kopyalandığını onaylar.
ls -l
Sonraki adım, ana
yardımcı programını ~/test/ana
dizininde çağırarak test etmektir.
Yardımcı program beklendiği gibi çalışıyor, bu harika. Ancak izinler doğru değil. Gereklilik, grup geek
üyelerinin okuma ve yürütme izinlerine ve diğer kullanıcıların yalnızca yürütme izinlerine sahip olacak şekilde ayarlanmasıdır.
Bu sorunların her ikisini de aşağıdaki komutla oldukça basit bir şekilde çözebiliriz. Komutu kök izinleriyle çalıştırmak için sudo
kullanımına dikkat edin. -o
ve -g
ve seçenekler bunu gerektirir. Komutu verdiğimizde şifremiz istenecek.
sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana
-
-b
(yedekleme) seçeneği, dosyaların üzerine yazılmadan önce yedeklerini oluşturur. -
-S
(son ek) seçeneği, yedekleme dosyaları için son eki tanımlar. Bir sonek sağlamazsanız bir~
(tilde) kullanılır..bak
install
ekini kullanmasını istiyoruz. -
-o
(sahip) seçeneğini kullanarak dosyanın sahibinidave
olarak belirledik. -
-g
(grup) seçeneği, bir grubun adını gerektirir. Bu, dosyaların sahip grubu olur. Kullanacağımız grubun adıgeek
. -
-m
(mod) seçeneği, standartchmod
sayısal sözdizimini kullanarak dosyalar için dosya modlarını ayarlar.
Artık -D
(dizin oluştur) seçeneğini kullanmamız gerekmiyor, çünkü test dizininin zaten var olduğunu biliyoruz. Ayrıca -v
(ayrıntılı) seçeneğini de çıkardık. ~/test/ana
dizinimizde dosyaları listelemek bize dosya detaylarını gösterir:
ls -l
Bu, tüm gereksinimlerimizin karşılandığını doğrular.
- Dosyalar test dizinine kopyalandı.
- İzinler doğru ayarlanmış.
-
dave
dosyaların sahibidir. -
geek
grubu, iki dosyanın sahibi grubudur. - Ana.bak ve Words.db.bak olarak adlandırılan her dosyanın yedek kopyaları yapılmıştır.
Tüm bunlar tek bir komut kullanılarak elde edildi. Düzenli.
Programcımız, yardımcı programda bazı son değişiklikler yapar ve yeniden derler. Değişen dosyaların ~/work
dizininden ~/test/ana
dizinine kopyalanması gerekir. Bunu -C
(karşılaştır) seçeneğini kullanarak yapabiliriz. Kaynak dosya ve hedef dosya aynıysa, kaynak dosya kopyalanmaz.
sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana
Hedef dizindeki dosyaları listelemek bize ana
dosyanın dosya boyutunun değiştiğini gösterir. ana.bak
dosyasından daha büyüktür. Ana üzerindeki zaman ana
da değişti. Bu değişiklikler, dosyanın yeni sürümünün buraya kopyalanmasından kaynaklanmaktadır.
ls -l
Words.db
dosyasının dosya boyutu ve zaman damgası değişmedi. Words.db
dosyasında hiçbir değişiklik yapılmadı, bu nedenle kopyalanmadı. Çok sayıda dosya içeren bir projede -C
(karşılaştır) seçeneği, yalnızca değiştirilen dosyaları kopyalayarak çok fazla zaman ve sabit disk karmaşasından tasarruf sağlayabilir.
Programcı, ana
yardımcı programın çalışmaya devam ettiğini tekrar test etti.
Dosyaları /usr/local/bin
dizinine kopyalamak için install
kullanmanın zamanı geldi. Bu, yeni yardımcı programı bu Linux bilgisayarın tüm kullanıcıları için kullanılabilir hale getirecektir. /usr/local/bin
dizininin var olduğunu biliyoruz, dolayısıyla bu dizini oluşturmamıza gerek yok. Son komutumuzun değiştirilmiş bir versiyonunu kullanabiliriz.
Hedef dizini /usr/local/bin
olarak değiştirdik. -C
(karşılaştır) seçeneğini kaldırdık çünkü bu dosyaların henüz hedef dizinde kopyaları yok, dolayısıyla karşılaştırılacak hiçbir şey yok. Aynı şekilde yedeklenecek bir şey yok, bu yüzden -b
(yedekleme) seçeneğini ve -S
(sonek) seçeneğini kaldırabiliriz.
sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin
Dosyaların /usr/local/bin
ulaştığını listeleyebiliriz:
ls -l
Ve son bir test olarak, dizini ana dizinimize değiştirelim ve yeni yardımcı programımızı oradan çağırıp çağıramayacağımıza bakalım.
ana
komutunun başına ./
ile başlamamız gerekmediğine dikkat edin, bu, komutun /usr/local/bin
'den çalıştığı anlamına gelir. Görev tamamlandı.
Yüklemenin, boyutunu küçültmek için ikili dosyanın içindeki gereksiz sembol tablolarını ve diğer bagajları çıkarabileceğinden bahsetmiştik. Şimdi yapalım. Aşağıdaki komutun Words.db'yi içermediğini unutmayın. Bunun nedeni, Words.db'nin bir ikili yürütülebilir dosya değil, bir veritabanı dosyası olmasıdır. İkili dosyayı kopyalamak ve ana
için aşağıdaki komutu kullanabiliriz. -s (küçültme) seçeneğini küçük harf “s” ile ekledik. -b (yedekleme) seçeneğine ve -S (son ek) seçeneğine büyük harf “S” ile geri ekledik.
sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin
Dosyaları /usr/local/bin
listelemek, ana
dosyanın boyutunu yedek sürümüyle karşılaştırmamıza olanak tanır. ana
dosya, önceki boyutunun neredeyse %60'ına düşürüldü.
ls -l /usr/yerel/bin
Özetle
install
komutu oldukça niş bir kullanım sağlar. Birçok insan için her gün veya muhtemelen aydan aya kullanılmayacaktır. Buna rağmen, install
komutu, aşina olmak ve cephaneliğinizde bulundurmak için iyi bir araçtır. İhtiyaç duyduğunuz durumlarda, öğrenme eğrinizi verimlilik, basitlik ve basitçe daha az tuş vuruşu ile ödüllendirir.
Linux Komutları | ||
Dosyalar | tar · pv · kedi · tac · chmod · grep · diff · sed · ar · adam · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · birleştirme · jq · katlama · uniq · dergictl · kuyruk · stat · ls · fstab · yankı · daha az · chgrp · chown · rev · bak · diziler · tür · yeniden adlandır · zip · unzip · mount · umount · yükle · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · yama · dönüştürmek · rclone · parçalamak · srm | |
süreçler | takma ad · ekran · üst · güzel · renice · ilerleme · strace · systemd · tmux · chsh · geçmiş · at · toplu · ücretsiz · hangi · dmesg · chfn · usermod · ps · chroot · xargs · tty · pembemsi · lsof · vmstat · zaman aşımı · duvar · evet · öldür · uyku · sudo · su · zaman · groupadd · usermod · gruplar · lshw · kapatma · yeniden başlatma · durdurma · güç kapatma · passwd · lscpu · crontab · tarih · bg · fg | |
ağ | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · kazmak · parmak · nmap · ftp · curl · wget · kim · whoami · w · iptables · ssh-keygen · ufw |
İLGİLİ: Geliştiriciler ve Meraklılar için En İyi Linux Dizüstü Bilgisayarlar