cp Komutu ve Kullanımı

Komut satırı dosya işlemlerinde kullanılan, aynı zamanda uzak sunucular arasında işlemler yürütmek için scp (secure copy) komutunun da temel aldığı cp (copy) komutuna kısaca bir göz atalım. Konular içerisinde yer alan kodlarla sıklıkla kullandığım cp temelde en basit ifadeyle kopyalama işlemi gerçekleştiriyor.

AA

Parametrelerle özelleştirilerek dosya ve klasör kopyalama (rsync komutuna ayrıca değineceğim), kopyalama aşamasında yeni dosya ve/veya klasör oluşturma gibi kullanımlarla birlikte oldukça fonksiyonel işlemler gerçekleştirmeyi mümkün kılıyor1.

cp Komutu Kullanımı

Dosya ve klasör kopyalama işlemleri gerçekleştiriyor2. cp [kaynak-dosya-klasor] [hedef-dosya-klasor] şeklinde kullanılan komut temelde dosya işlemlerini ön tanımlı olarak gerçekleştirmekte. Örneğin, veritabani.sql isimli dosyamızın aynı dizinde farklı isimli bir kopyasını oluşturmak istersek kullanacağımız komut şu şekilde olacaktır. Dosya işlemleri sırasında isim benzerliğiyle karşılaşılması durumunda onaylayarak dosya üzerine yazma işlemi gerçekleştirebilirsiniz.

cp /Users/kullaniciadi/Desktop/veritabani.sql backup.sql

Peki, bulunduğumuz dizindeki tüm *.sql uzantılı dosyaların oluşturulmuş /db_yedek isimli bir başka klasöre kopyalanmasını istersek?

cp *.sql db_yedek/

/public adında, içeriğinde dosyalar ve alt klasörler barındıran bir klasörümüzü sahip olduğu yapıyla birlikte başka bir dizine kopyalamak istersek?

cp -avR public ../../public_backup
  • -a dosyaya ait file mode, ownership, timestamps ve eğer mümkünse attributes: context, links, xattr verilerini aktarır.
  • -v işlemle ilgili süreci döker
  • -R klasör yapısını olduğu gibi kopyalar

Biraz daha komplike bir örneğe geçelim. Aşağıdaki komut /album isimli klasörü ve alt klasörlerini tarayıp bulduğu *.png uzantılı dosyaları bir üst dizinde bulunan /upload_backup klasörüne kopyalayacaktır.

find . -iname '*.png' -exec cp {} ./backup/ \;
find . -maxdepth 1 -iname '*.webloc' -exec cp {} ./backup/ \;

cp ile ilgili daha detaylı bilgi için man cp komutunu kullanabilirsiniz.