Bu makalede bahsedilen komutları ve örnekleri bir Debian 10 Buster sisteminde çalıştırdık ancak bunları hemen hemen tüm Linux dağıtımlarında çoğaltabilirsiniz.
Linux komut satırı olan Terminal'e Uygulama üzerinden kolayca erişilebilir. Başlatıcı araması aşağıdaki gibidir:
Örnek 1: Tek bir dosyayı hedef dizine kopyalama
cp komutunun en basit kullanımı, tek bir kaynak dosyayı bir hedef dizine kopyalamaktır. Bunu yapmak için kullanabileceğiniz sözdizimi:
$ cp kaynak dosyası/hedef/dizinMisal:
Bu örnekte, sample_file adlı bir dosyayı kopyalıyorum.Belgelerim klasörüne txt:
Daha sonra ls komutu ile hedef klasördeki dosyanın varlığını doğruladım.
Örnek 2: Bir hedef dizine birden çok dosya kopyalama
cp komutuyla, aşağıdaki sözdizimini kullanarak birden çok dosyayı bir hedef dizine kopyalayabilirsiniz:
$ cp kaynak dosya1 kaynak dosya2 kaynak dosya3… /hedef/dizinMisal:
Bu örnekte, cp komutu aracılığıyla Belgeler klasörüme iki örnek dosya kopyalıyorum:
Daha sonra, bu dosyaların hedef klasördeki varlığını ls komutuyla doğruladım.
Örnek 3: Etkileşimli bir şekilde dosyaların kopyalanması
Hedef klasörünüzde aynı ada sahip bir dosya varsa, hedef dosyanın üzerine yazmadan önce sizden istenmesi için cp komutunu kullanabilirsiniz. -i anahtarını aşağıdaki şekilde kullanabilirsiniz:
$ cp -i kaynak dosya/hedef/dizinMisal:
Bu örnekte, sample_file adlı bir dosya.Robots.txt Belgeler klasörümde zaten var, bu nedenle -i bayrağıyla cp komutu, üzerine yazmak isteyip istemediğimi soruyor. Bu istemde y girersem dosyanın üzerine yazılacak.
Örnek 4: Ayrıntılı çıktıyla birlikte dosyaları kopyalama
Ayrıntılı bir çıktı, komutun ne yaptığını yazdırır. Bu, -v anahtarıyla cp komutuna aşağıdaki gibi dahil edilebilir:
$ cp -v kaynak dosya/hedef/dizinMisal:
Aşağıdaki örnekte, bir komutu kopyalarken cp komutunun ayrıntılı bir çıktıyı nasıl yazdırdığını görebilirsiniz:
Örnek 5: Bir dizini yinelemeli olarak kopyalama
-r seçeneğini cp komutuyla kullanmak, bir dizindeki tüm dosya ve klasörleri yinelemeli olarak başka bir konuma kopyalar. Bu senaryoda cp komutunu şu şekilde kullanabilirsiniz:
$ cp -r dizin1 dizin2Misal:
Aşağıdaki örnekte, tüm dosyalarıyla birlikte klasör 1'in tamamı klasör2'ye kopyalanacaktır.
Daha sonra ls komutuyla klasör2'nin içeriğini doğruladım. Klasör2 şimdi kaynak klasörün bir kopyasını içeriyor.
Örnek 6: Bir arşivi tutarken bir dizini yinelemeli olarak kopyalama
-a anahtarını cp komutuyla kullanarak aynı anda iki şey yapabilirsiniz:
- Bir dizinin dosyalarını yinelemeli olarak başka bir dizine kopyalayın
- Dosyaları kopyalarken izinleri, zaman damgasını, sembolik bağları ve bu tür tüm özellikleri olduğu gibi tutun.
Bu senaryoda cp komutunu şu şekilde kullanabilirsiniz:
$ cp -a dizin1 dizin2Misal:
Aşağıdaki örnekte, tüm klasör 1, tüm dosyalarıyla birlikte klasör2'ye kopyalanacaktır. Ayrıca dosyalar daha sonra 'ls -l komutu' ile doğrulandığı şekilde arşivlenecektir.
Örnek 7: Hedef dosyadan daha yeni olması durumunda bir dosyayı kopyalayın
Bazen bir dosyayı yalnızca hedef dosyadan daha yeniyse hedef dizine kopyalamak istersiniz. Bu, cp komutuyla -u anahtarı kullanılarak yapılabilir:
$ cp -u sourcefileORsourcedirectory /hedef/dizinMisal:
Bu örnekte, sample_file dosyasını düzenledim.kaynak klasörümden txt. Ben dosyayı düzenlemeden önce bu dosyalar zaten hedef klasöre kopyalanmıştı. Bu, 'ls -l' komutunun aşağıdaki çıktısında görülebilir:
Şimdi, kaynak klasörü hedef klasöre kopyaladığımda, ayrıntılı çıktı yalnızca benim tarafımdan düzenlenen dosyanın kopyalanacağını doğruladı.
Örnek 8: Bir dosyayı kopyalayın, ancak bir hedef dosya zaten mevcutsa üzerine yazmayın
Hedef konumda zaten varsa, cp komutuna dosyanın üzerine yazmamasını söyleyebilirsiniz. Bu, -n anahtarıyla aşağıdaki gibi yapılabilir:
$ cp -n kaynak dosya/hedef/dizinMisal:
Bu örnekte, önce bir dosyayı zaten var olduğu hedef konuma kopyalamayı denedim. -i anahtarı, üzerine yazmak isteyip istemediğimi sordu.
İkinci komutta -n anahtarını ekledim. -i anahtarını görmezden geldi, ancak hedef dizinde zaten var olan dosyanın üzerine yazmadı.
Örnek 9: Hedef dizindeki bir dosyaya sembolik bir bağlantı oluşturun
cp komutundaki -s anahtarı ile kaynak dosyayı kopyalamak yerine hedef klasördeki kaynak dosyaya sembolik bir bağlantı oluşturabilirsiniz.
$ cp -s kaynak dosyası/hedef/dizinMisal:
Aşağıdaki örnekte, sample_file dosyasına sembolik bir bağlantı oluşturdum.Hedef klasördeki robots.txt.
Daha sonra 'ls -l' komutuyla hedef klasördeki sembolik bağlantının varlığını doğruladım.
Örnek 10: Hedef dizindeki bir dosyaya sabit bir bağlantı oluşturun
Başka bir klasördeki bir dosyaya sabit bağlantı oluşturduğunuzda, dosya hedef klasöre kopyalanmaz; bunun yerine, kaynak dosyaya sabit bir bağlantı oluşturulur. Hem kaynak dosyanın hem de kopyalanan sabit bağlantının inode numarası aynı. Sabit bir bağlantı şu şekilde oluşturulur:
$ cp -l kaynak dosya/hedef/dizinMisal:
Bu örnekte, Belgeler klasöründeki kaynak dosyaya sabit bir bağlantı oluşturdum.
'ls -il' komutuyla hem orijinal dosyanın hem de sabit bağlantının aynı inode numaralarına sahip olduğunu doğruladım.
Linux'ta cp komutunda ustalaşmak için bilmeniz gereken tek şey buydu. Bu anahtarların bir kombinasyonunu kullanarak dosya kopyalamayı çok daha özelleştirilebilir hale getirebilirsiniz.