husonet | Tarih: 14.01.2015
mkdir ve cp içinde --parents flag kullanımı
mkdir ve cp komutlarının --parents argumanı ile kullanımı
Bazen uzunca bir klasör iç içe tek bir satırda oluşturmak isteriz. Örneğin /home/husonet/status/2015/ocak
İlk denemenizde aşağıdaki gibi bir hata alabilirsiniz.
mkdir /home/husonet/status/2015/ocak
mkdir: cannot create directory `/home/husonet/status/2015/ocak':
No such file or directory
Sorun arada bulunan klasörlerin var olmamasından kaynaklanıyor. "status" ve "2015" klasörleri mevcut değildir.
Aşağıdaki şekilde aslında işlemimizi yapabiliriz ama sanki biraz kulağımızı tersten tutacağız sanki.
cd /home/husonet
mkdir status
cd status
mkdir 2015
cd 2015
mkdir ocak
Ne kadar çok iş yaptık dimi?
Yukarıda yaptığımız işi çok basit bir şekilde halledebilirdik işte burada -p "--parent" flagı devreye giriyor aşağıdaki örneğimizi inceleyelim.
mkdir --parents /home/husonet/status/2015/ocak
--parents seçeceği gerekli olursa arada bulunan klasörleri oluşturacaktır.
mkdir komutu için --parents seçeneğinin kısaltılması -p seçeneğini kullanabilirsiniz.
mkdir -p /home/husonet/status/2015/subat
ls -R komut disizini kullanarak alt dizinlerle birlikte açılan klasörleri görebilirsiniz.
cd /home/husonet; ls -R status
status:
2015
status/2015:
ocak subat
status/2015/ocak:
status/2015/subat:
Şimdi /home/husonet/status/2015/ocak klasörümüzün içine bir dosya oluşturalım.
touch /home/peter/status/2015/ocak/ock12.txt
Yukarıdaki komut dizisi ock12.txt adında boş bir dosya oluşturur. Sonrasında ise ock12.txt dosyamızı kopyalayalım.
cd /home/husonet
cp --parents status/2015/ocak/ock12.txt /home/husonet/tmp
işte bu kısımda status/2015/ocak/ock12.txt dosyası tmp klasörüne kopyalanacaktır --parents komutu tmp kalsörü içerisine "status", "2015" ve "ocak" klasörlerini oluşturacaktır.
İşlemi yaptıysak hemen bakalım
cd /home/husonet/tmp/
ls -R status
status:
2015
status/2015:
ocak
status/2015/ocak:
ock12.txt
cp --parents ve cp -r den farkı nedir?
cd /home/husonet
cp -r status /home/husonet/tmp
Görüldüğü üzere özyinelemeli kopyalama (Aralık dizinin içeriği dahil) durumu altında her şeyi kopyalamış.
ls -R /home/husonet/tmp/status
/home/husonet/tmp/status:
2015
/home/husonet/tmp/status/2015:
ocak subat
/home/husonet/tmp/status/2015/ocak:
ock12.txt
/home/husonet/tmp/status/2015/subat: