Linux'ta “install” Komutunu Kullanarak Dosyaları Kopyalama

Yayınlanan: 2022-01-29
Bir Ubuntu Linux masaüstünde Bash'in konsept sanatı
Fatmawati Achmad Zaenuri/Shutterstock.com

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.

adam sayfasını yükle

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.

Reklamcılık

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.

çalışma dizininde bir yardımcı programın testi

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 

Komutu /test/ana'ya yükleyin

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.
Reklamcılık

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 

/test/ana dizinindeki ls

Sonraki adım, ana yardımcı programını ~/test/ana dizininde çağırarak test etmektir.

/test/ana dizinindeki ana yardımcı programın testi

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 

yedekleme seçenekleri ve ön görev ayarlarıyla komut yükle

  • -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 sahibini dave 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, standart chmod 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 

/test/ana dizinindeki ls

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.
Reklamcılık

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 

-C karşılaştırma seçeneğiyle komut yükle

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 

/test/ana'da ls, ana yardımcı programı için test ile

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.

Reklamcılık

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 

kopyalanan dosyaları /usr/local/bin dizinine kurun

Dosyaların /usr/local/bin ulaştığını listeleyebiliriz:

 ls -l 

/usr/local/bin'in ls'si

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.

yardımcı program testi

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 

-s şerit seçeneğiyle yükleme seçeneği

Reklamcılık

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 

ls çalışma dizininde

Ö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.

İLGİLİ: Geliştiriciler ve Meraklılar için En İyi Linux Dizüstü Bilgisayarlar