Etiket Arşivi bash

bash scripting: Argument list too long error for rm

Bir dizindeki tüm alt klasörler içinde bulunan ve adı align_ ile başlamayan bütün dosyaları silmek istiyordum. Bu işlemi rm */!(align_*) kodu ile yapabiliyorum fakat klasör ve dosya sayısı çok fazla olduğundan dolayı Argument list too long hatası aldım. Bunu çözmek için de aşağıdaki bash scripti hazırladım. Buna benzer bir sorunla karşılaşmışsanız aşağıdaki kodu kendinize göre düzenleyerek kullanabilirsiniz.

#!/bin/bash

for filename in */*; do
	if [[ $filename != *align_* ]]
	then
		rm $filename
	fi
done

 

 

(30.04.2019 tarihinden itibaren toplam 7 kez, bugün 1 kez ziyaret edildi. )

Linux: cp komutu omitting directory hatası

Bilindiği gibi cp komutu klasör yada dosya kopyalamak için kullanılıyor. Klasör kopyalarken bu hatayı alıyorsanız recursive anlamındaki -r komutunu eklemelisiniz. Böylece klasörü içindeki tüm dosyalarla birlikte kopyalayacaktır.

Gel gelelim bu hatayı çoklu dosya kopyalarken de alabilirsiniz. Örnek olarak

cp sample.txt /home/user/Desktop/*0/

komutunu çalıştırmaya çalıştığınızda birden fazla klasöre dosya kopyalaması gerekiyor ama cp komutu bu işlemi gerçekleştirmeye izin vermiyor. Peki buna çözüm olarak ne yapacağız. Ben küçük bir bash scriptiyle sorunu halletim. Aşağıdaki scriptte döngü ve cp komutunun bulunduğu satırda ilgili değişiklikleri yaparak bu sorunu halledebilirsiniz.

#!/bin/bash

for i in {20..100..10}
 do
 cp sample.txt /home/user/Desktop/$i/ 
 done
(30.04.2019 tarihinden itibaren toplam 60 kez, bugün 1 kez ziyaret edildi. )