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