2013-03-16 16 views
5

Dizindeki her dosyanın içeriğini temizlemek için tek bir komutla (döngü yok) mümkün mü?Linux bir dizindeki tüm dosyaların içeriğini boşaltmak mümkün mü

+2

Neden öyle mi

sadece geçerli dizinde dosyaları temizlemek için döngülerden kaçınmak ister misiniz? – nneonneo

+1

İyi hazırlanmış bir AWK veya Bash komutu bir programlama sorusu olarak kabul edilir mi? –

+0

Komut satırından çalıştırmak için tek bir komut istiyorum. Eminim, iyi-tip f -exec echo "" ile bunu yapmanın bir yolu olduğundan eminim ..... sadece tamamlayamıyorum –

cevap

6

Kullanım kesiği,:

truncate -s 0 directory/* &> /dev/null 
9

Bu cehennem gibi çirkin, ama çalışır:

find . -type f -exec sh -c 'echo -n "" > $1' sh {} \; 

Bu

her alt dizininde her dosyayı silecektir.

for i in *; do cat /dev/null > $i; done 

(Evet, bir döngü, ama tek çizgi.)

+0

[Bu] (https://gist.github.com/qaisjp/8871c717ec300d704ae3) benim için iyi olduğunu, ancak printf çıkışı " olarak değiştirmek isteyebilirsiniz Ayrıca, "echo -n" "aslında her dosyaya -n" koydu. – qaisjp

+2

'echo -n" "' gereksizdir; ''> 1 $' yapacak. – rymo

+0

güzel! :-D :-p –

İlgili konular