Örneklerle Linux’ta CP Komutu Nasıl Kullanılır

Merhabalar,

Linux ve Unix sistemlerinde çalışırken, dosya ve dizin kopyalamak, günlük olarak gerçekleştireceğiniz en yaygın görevlerden biridir.

CP, Unix ve Linux sistemlerinde dosya ve dizinleri kopyalamak için bir komut satırı yardımcı programıdır.

Bu yazımızda cp komutunun nasıl kullanılacağını anlatacağız.

 

CP komutu nasıl kullanılır:

CP komutunun genel sözdizimi aşağıdaki gibidir:

cp [SECENEKLER] [KAYNAK]   [HEDEF]

KAYNAK, argüman olarak bir veya daha fazla dosya veya dizin içerebilir ve HEDEF argümanı tek bir dosya veya dizin olabilir.

KAYNAK ve HEDEF bağımsız değişkenlerinin her ikisi de dosya olduğunda, cp komutu ilk dosyayı ikincisine kopyalar. Dosya yoksa, komut onu oluşturur.

KAYNAK bağımsız değişken olarak birden çok dosya veya dizine sahip olduğunda, HEDEF bağımsız değişkeni bir dizin olmalıdır. Bu durumda, KAYNAK dosyaları ve dizinleri HEDEF dizinine taşınır.

KAYNAK ve HEDEF bağımsız değişkenlerinin her ikisi de dizin olduğunda, cp komutu birinci dizini ikincisine kopyalar.

 

Dosya ve dizinleri kopyalamak için en azından kaynak dosya üzerinde okuma ve hedef dizinde yazma izniniz olmalıdır. Aksi takdirde, bir izin reddedildi hatası gösterilir.

 

CP Komutu ile Dosyaları Kopyalama:

cp kullanmanın en temel senaryosu, mevcut çalışma dizinindeki bir dosyayı kopyalamaktır. Örneğin, 2.txt adlı bir dosyayı yedek..txt dosyasına kopyalamak için aşağıdaki komutu çalıştıralım.

cp 2.txt  yedek.txt

 

Bir dosyayı başka bir dizine kopyalamak için hedef dizinin mutlak veya  yolunu belirtelim.

Hedef olarak yalnızca dizin adı belirtildiğinde, kopyalanan dosya orijinal dosyayla aynı ada sahiptir.

Aşağıdaki örnekte, 2.txt dosyasını yedek klasörüne kopyalıyoruz.

cp 2.txt /home/firatcanoglu/Desktop/efran/Yedek/

 

 

Dosyayı farklı bir adla kopyalamak istiyorsanız, istediğiniz dosya adını belirtmeniz gerekir. Aşağıdaki komut dosyayı belirtilen dizine yedek.txt olarak kopyalayacağım.

cp 2.txt /home/firatcanoglu/Desktop/efran/Yedek/yedek.txt

 

 

Eğer hedefte aynı dosya avrsa varsayılan olarak üzerine yazılır. -n seçeneği, cp’ye mevcut bir dosyanın üzerine yazmamasını söyler.

cp -n 2.txt /home/firatcanoglu/Desktop/efran/Yedek/yedek.txt

 

 

cp’yi onay istemeye zorlamak için -i seçeneğini kullanabiliriz.Eğer hedefte aynı dosya varsa size üzerine yazıp yazak istemeyeceğinizi soracak,  fakat hedefte  aynı isimde dosya yoksa size bir şey somayacak ve hedefte belirtilen dosyayı kopyalayacak.

cp -i 2.txt /home/firatcanoglu/Desktop/efran/Yedek/yedek.txt

 

 

Kaynaktaki dosya hedefdeki dosyadan daha yeniyse kopyalamak istiyorsanız, cp komutunu -u  parametresi ile  çağırabiliriz.Bu parametre kullanılmazsa hangi dosyanın güncel olduğuna bakmadan kaynaktaki dosyayı hedefe yazacaktır.Yani hedefteki dosyanın üzerine yazacaktır.

cp -u 2.txt /home/firatcanoglu/Desktop/efran/Yedek/2.txt

 

 

 

Bir dosyayı kopyalarken, yeni dosya, komutu çalıştıran kullanıcıya aittir. Dosya modunu, sahipliği ve zaman damgalarını korumak için -p seçeneğini kullanabiliriz.

 

Aşağıdaki görüldüğü  gibi ilk seçenekte -p paramtetresi kullanmadan kopyalam işlemi yaptım.Dosyanın sahipliği değişti.İşlemi root kullanısında yaptığım için dosyanın yeni sahibi root user oldu.

 

Bu seçenekte kopyalama işlemini -p parametresi kullanarak yapıyorum.Ve görüldüğü dosyanın sahiplik bilgisi değişmiyor.

cp -p 2.txt ./Yedek/2.txt

 

 

Yararlı olabilecek başka bir seçenek de cp’ye ayrıntılı çıktı yazdırmasını söyleyen -v seçeneğidir.Bu parametre kopyalama ile ilgili bilgi çıktı verir bizlere.

cp -v 2.txt ./Yedek/backup.txt

 

 

 

CP Komutu ile Dizinleri Kopyalama:

 

Tüm dosyaları ve alt dizinleri dahil bir dizini kopyalamak için -R veya -r seçeneğini kullanın.

Aşağıdaki örnekte klassörü tüm alt dizinleri ile birlikte  Backup klasörünün içine kopyalanıyor.

cp -r ./a ./Backup/  veya  cp -R ./a ./Backup/

 

Yukarıdaki komut, hedef dizini oluşturur ve tüm dosyaları ve alt dizinleri kaynaktan hedef dizine tekrar tekrar kopyalar.

Hedef dizin zaten mevcutsa, kaynak dizinin kendisi ve içeriği hedef dizinin içine kopyalanır.

 

 

Kaynak dizini değil, yalnızca dosyaları ve alt dizinleri kopyalamak için -T seçeneğini kullanalım.Yani ana dizinin kendisini kopyalamaz sadece içeriği kopyalar.

cp -RT ./a ./Backup/

 

 

Dizinin kendisini değil, yalnızca dizinin içeriğini kopyalamanın başka bir yolu da joker karakteri (*) kullanmaktır. Aşağıdaki komutun dezavantajı, gizli dosya ve dizinleri (nokta ile başlayanlar) kopyalamamasıdır.

cp -RT ./* /home/firatcanoglu/Desktop/efran/Yedek/

 

 

Dosyaları kopyalarken bir önceki bölümde kullandığımız tüm seçenekler dizinleri kopyalarken de kullanılabilir. Temel fark, dizinleri kopyalarken her zaman -R seçeneğini kullanmanız gerekmesidir.

 

Birden Fazla Dosya ve Dizini Kopyalama:

Aynı anda birden çok dosya ve dizini kopyalamak için adlarını belirtin ve son argüman olarak hedef dizini belirmek gerekir.

cp -R 2.txt 3.txt Pim/ /home/firatcanoglu/Desktop/efran/Yedek/

 

Bu eğitim yazımızında sonuna geldik.Dosyaları ağ üzerinden kopyalamak için rsync ve scp yardımcı programlarını kullanın.

 

Umarım bu eğitim yazısı sizler için faydalı olur.

 

Bu eğiticiye oy ver
[Total: 4 Average: 5]
Firat CANOĞLU TAĞ