cp Komutu

Kopyala (Copy) komutudur.
Belirtilen bir ya da birden çok dizini ya da dosyayı hedefe kopyalar.
-t parametresiyle değiştirmemiz müstesna sonuncu sıraya yazılan hedef olur.
Dizin kopyalama işlemini de gerçekleştirebilmesi için -r parametresinden faydalanır.

Temel kullanım şekli:
cp -r kaynak hedef

Örnekler:
cp aaa.txt dizin/
Konsolu aaa.txt dosyasının olduğu dizinde açarız. Yukarıdaki komutu verdiğimizde aaa.txt, dizinin içerisine kopyalanacaktır. Eğer dizinde aaa.txt isimli bir dosya zaten varsa üzerine yazılacaktır.

cp /home/user/belgeler/bbb.txt /home/user/dosyalar/ccc.txt /home/user
Konsolda yukarıdaki komutu verirsek bbb.txt ve ccc.txt dosyaları hedef dizin olan user dizinine kopyalanmış olur. Dosyalardan birinin mevcut olmaması halinde bulunan dosyaların kopyalanma işlemi gerçekleştirilir ve bulunamayan dosya için hata mesajı görüntülenir.

cp aaa.txt ../aaa.txt
aaa.txt dosyası kök dizinde değilse bir üst dizine kopyalanır. Aynı isimde bir dosya varsa üzerine yazar.

cp ccc.txt ~/belgeler
ccc.txt dosyasını kullanıcının ev dizinindeki belgeler dizinine kopyalanır. ~ işareti, kullanıcının ev dizinini simgelemektedir.

cp !(aa|bbtxt|cc.txt) aa
aa dosyası, bb.txt ve cc.txt dışında aynı konumdaki tüm dosyalar aa dizinine kopyalanacaktır.

cp *.txt ??a?
Bulunulan dizindeki tüm txt uzantılı dosyaları, baştan üçüncü karakteri a olan dört karakterli dizinin içerisine kopyalanır. Eğer aynı tanımlamaya uygun bir dizin daha varsa ekranda dizin kopyalanamayacağı uyarısı görüntülenir.

cp * ../aaa1
Bulunulan dizindeki tüm dosyalar bir üst dizinde bulunan aaa1 isimli dizinin içerisine kopyalanır. Eğer dizinler de varsa bunların kopyalanamacağı uyarısı ekranda görüntülenir.

cp -a aa bos
-a or --archive parametresi, -dR --preserve=all parametreleri gibidir.
-d parametresi, --no-dereference --preserve=links parametreleri gibidir.
-P or --no-dereference parametresi kaynakların sembolik bağlantılarını takip etmez(asıl dosyaya ulamaya çalışmaz)
aa dizini bos adlı dizinin içerisine kopyalanır. Orijinal yapı ve nitelikleri korunur.

cp --attribures-only kaynak.txt hedef.txt
--attributes-only, dosyanın içerdiği bilgiyi kopyalamaz, sadece özelliklerini ve yetkilerini kopyalar. Mevcut bir dosyanın özelliklerini değiştirmez. -r parametresi ile varolan bir dizin hedeflenirse o dizinin özelliklerini değiştirmez.
kaynak.txt dosyası ile nitelikleri aynı fakat içeriği boş olan hedef.txt isimli dosya oluşturulur. Eğer hedef.txt adlı bir dosya halihazırda varsa o dosyada herhangi bir değişiklik olmaz.

cp -r --copy-contents kaynak hedef
--copy-contents, -r parametresi ile birlikte kullanıldığında etki eder. Özel içerikli dosyaların kopyalanmasında kullanılır. (FIFOs ve device files vb.) Sembolik linklerin kopyalanmasına herhangi bir etkisi yoktur.
kaynak adlı dizin içeriği ile beraber hedef dizinine kopyalanır. Özel içerikli dosyaların kopyalama işlemi de gerçekleşmiş olur.

cp -i bbb.txt asa/bbb.txt
-i veya --interactive, üzerine yazmadan önce sorar. Dizin kopyalamada -r parametresi ile birlikte kullanılır.
bbb.txt dosyasını asa dizini içerisindeki bbb.txt dosyası üzerine yazıp yazmayacağını sorar ve cevaba göre hareket eder.

cp ddd.txt ddd2.txt -l
-l veya --link, etkileşimli dosya (Hard link) kopyalamayı gerçekleştirir. Kopyalamadan sonra birinin içeriğinde yapılan değişiklik diğerinde de otomatik olarak gerçekleşir. İsim değişikliği yaparsanız (herhangi birinde) özellik bozulmaz, ancak diğerinde isim değişikliği olmaz. Etkileşim içerikle ilgilidir. Dizin kopyalamada bu özellik etkinleşmiyor.
Aynı dizinde ddd2.txt adında bir etkileşimli dosya oluşturulmuş olur. Eğer dizinimizde ddd2.txt isimli bir dosya önceden mevcut olsaydı hata mesajı alacaktık.

cp -L ddd.txt ddd2.txt
-L veya --dereference, sembolik linklerin (kısayolların) kaynağını daima takip ederek kopyalar.
Sembolik link olan ddd.txt dosyasının işaret ettiği linkteki dosya ddd2.txt olarak kopyalanır.

cp --parents aa/aa/333.txt bos
--parents, kaynak dosyanın tam adını kullanarak tüm belirtilen dosyaları kopyalar.
333.txt dosyasını bos adlı dizinin içerisine bos/aa/aa/333.txt şeklinde kopyalar.

cp --preserve=all asa.odt 12.odt
--preserve[=ATTR_LIST], kopyalanan dosyanın özel niteliklerini korur. (Öntanımlı olarak mode,ownership,timestamps nitelikleri mevcuttur) İstenirse eklenebilecek nitelikler: context, links, xattr, all
asa.odt dosyasının bütün özel nitelikleri korunarak kopyalama işlemi gerçekleşir.

cp -r bbb asa/aaa
-R veya -r veya --recursive, dosyaları içerikleriyle birlikte kopyalar.
bbb dizini içeriğiyle birlikte asa/aaa dizinine kopyalanır.

cp asa1.txt asa3.txt -s
-s veya --symbolic-link, kopyalama yerine sembolik linklerini oluştur komutudur. Kısayollar farklı dizinlere taşındığında da aynı sembolik linki işaret ederler.
asa1.txt dosyasının asa3.txt adında bir sembolik linki (kısayolu) oluşturulur.

cp -t bbb ccc.txt ddd.txt
cp ccc.txt -t bbb ddd.txt
cp ccc.txt --target-directory=bbb ddd.txt
-t veya --target-directory=DIRECTORY, Hedef dizin -t parametresinden sonra gelen dizin olur. Bu parametrede hedef dosya olamaz.
Her üç komutta da ccc.txt ve ddd.txt dosyaları bbb içerisine kopyalanır.

cp -T bbb.txt ccc.txt
-T veya --no-target-directory, 'Dizin olmayan hedefe yaz' komutudur. Hedefin içeriğini siler ve üzerine yazar. Bu parametre -r parametresi ile birlikte yazılmazsa hedef, dizin olamaz.
bbb.txt dosyasının içeriği ccc.txt dosyası içeriğine yazılır. ccc.txt dosyasında önceki içerik silinir. ccc.txt dosyası yoksa yeni kopya bir dosya oluşturulur.

cp -v bbb.txt asa/
-v parametresi ile bilgisayara ne yaptığını açıkla emrini vermiş oluruz.
Kopyalama işlemi gerçekleşmişse `bbb.txt' -> `asa/bbb.txt' şeklinde ekranda bilgi verilir. Kopyalama işlemi gerçekleşmezse ekranda bir veri görüntülenmez.

cp --version
Versiyon bilgisi görüntülenir.
cp --help
Yardım sayfası görüntülenir.


Yukarıdaki işlemler "GNU bash, version 4.3.11(1)-release (i686-pc-linux-gnu)" üzerinde uygulanmıştır.
Yazı Tarihi: 28.02.2016




ANA SAYFA GNU/LINUX Komutlar