cp komutu seçenekleri ve onaysız toplu üzerine yazma | yes ve ters eğik çizgi

cp komutuyla birden fazla dosya kopyalarken her dosya için üzerine yazılıp yazılmayacağı sorulur ve iş durur. cp komutu Copy sözcüğünün kısaltmasıdır ve dosya ile dizinleri kopyalar; bu yazıda temel kullanımı, seçenekleri ve onaysız toplu üzerine yazmanın 2 yolunu derledik.
cp komutu hedefte aynı adlı bir dosya varsa sormadan üzerine yazar. Bunu önlemek için [alias cp='cp -i'] ayarlıdır; böylece üzerine yazmadan önce onay sorulur.
✅ Temel kullanım
Temel söz dizimi şöyledir.
cp -[seçenekler] <kaynak: Dosya veya dizin> <hedef: yol veya Dosya veya dizin yol>Önce kopyalanacak şeyi, ardından hedefi ya da yeni adı yazın.

# dosya > dosya kopyalama
cp file1 file2
# dosya > dizin içine kopyalama
cp file1 dir1/
# 2 dosya > dizin içine kopyalama
cp file1 file2 dir1/ testuser]# cp dir1/ dir2/
cp: -r not specified; omitting directory 'dir1/'
Dizin kopyalamak için -r, -R ya da -a seçeneği gerekir.
- -r/-R : Dizini ve içeriğini özyinelemeli kopyalama
- -a : Öznitelikleri koruyarak özyinelemeli kopyalama (-r dahil)
✅ cp ile toplu üzerine yazmanın 2 yolu
cp komutu çalıştırılınca [overwrite] sorulur, çünkü cp için [cp -i] takma adı ayarlıdır.
cp -a
cp: overwrite 'messages_ori'? y
~]# alias cp
alias cp='cp -i'Bir iki dosyada sorun yoktur, ama çok dosyada her biri için yanıt vermeniz gerekir.
Bu durumda aşağıdaki iki yöntemle onay almadan üzerine yazabilirsiniz.
yes | cp -ar /home/ ./Birincisi önüne [yes |] koymaktır; her soruya otomatik y girilir ve kopyalama devam eder. İkincisi komutun önüne ters eğik çizgi [\] koymaktır; takma ad atlanır ve özgün cp komutu çalışır.
\cp -ar /home/ ./✅ cp komutu seçenekleri & simülatör
| Seçenek | Açıklama | |
|---|---|---|
| -a | --archiveÖzgün dosyanın tüm izinlerini, sahibini, grubunu ve zaman bilgilerini koruyarak kopyalama[izinler, sahip, grup, zaman bilgileri vb. hepsini korur] + [-d : sembolik bağlantının kendisini kopyalar] + [-R : dizinleri özyinelemeli kopyalar] | |
| -b | Hedef dosya zaten varsa önce yedeğini alıp kopyalar | |
| -d | Kaynak sembolik bağlantıysa bağlantının kendisini kopyalar | |
| -f | Hedef dosya varsa zorla silip kopyalar | |
| -i | --interactiveÜzerine yazmadan önce kullanıcıdan onay isteralias cp='cp -i' | |
| -l(küçük harf) | Sabit bağlantı olarak kopyalar | |
| -P | Sembolik bağlantıyı izlemeden olduğu gibi kopyalar | |
| -p | Özgünün sahibini, grubunu, izinlerini ve zaman bilgilerini korur | |
| -r, -R | Dizinleri özyinelemeli kopyalar (alt dizinler ve dosyalar dahil)-r seçeneği POSIX standardı değildir; sembolik bağlantılarda ve aygıt dosyalarında sorun çıkarabilir. | |
| -s | Sembolik bağlantı olarak kopyalar (kaynak mutlak yolla verilmelidir) | |
| -u | Hedef dosya daha yeniyse ya da aynıysa üzerine yazmaz | |
| -v | Kopyalama ilerlemesini yazdırır (verbose)Tamamlanan her kopya için mesaj gösterir | |
| -x | Kaynak ve hedef farklı dosya sistemlerindeyse kopyalamaz. |
🔲 -a: Dosya özniteliklerini koruma & alt dizin ve dosyaları kopyalama
Özgün dosyaların özniteliklerini koruyarak alt dizinleri kopyalamak için yalnızca [-a] seçeneği yeterlidir. Ancak bazı betikler ve otomasyon araçları [-r]'yi açıkça istediğinden [-r] ya da [-R] de birlikte kullanılabilir.
testuser]# cp -a dir1 dir2
testuser]# ll dir*
dir1:
total 0
-rw-r--r-- 1 root root 0 Jun 8 14:11 file1
-rw-r--r-- 1 root root 0 Jun 8 14:15 file2
dir2:
total 0
-rw-r--r-- 1 root root 0 Jun 8 14:11 file1
-rw-r--r-- 1 root root 0 Jun 8 14:15 file2
testuser]# [-d : sembolik bağlantının kendisini kopyalar]+[-R : dizinleri özyinelemeli kopyalar]+[--preserve=all]
| --preserve=all kapsamındaki öğeler | Açıklama |
|---|---|
| mode | Dosya izinleri (rwx vb.) |
| ownership | Sahip (user) ve grup (group) |
| timestamps | Son değişiklik zamanı gibi zaman damgaları |
| links | Sabit bağlantı sayısı (aynı inode paylaşımı korunur) |
| context | SELinux güvenlik bağlamı |
| xattr | Genişletilmiş öznitelikler (dosyayla birlikte saklanan ek meta veriler) |
| all | Yukarıdaki tüm öğeleri tek seferde kapsayan kısaltma |
🔲 -u: Yalnızca yeni ve değişen dosyaları kopyalama
- Hedef yolda aynı adlı dosya yoksa ya da kaynak daha yeniyse kopyalar
- Yedekleme ve eşitlemede sık kullanılır
testuser]# cp -u file1 file2
testuser]# ll file*
-rw-r--r-- 1 root root 0 Jun 8 14:11 file1
-rw-r--r-- 1 root root 0 Jun 8 14:30 file2
ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.