2016-04-04 20 views
-2

Bazı dosyaları bir dizinde, dosya adı uzunluğunu ölçüt olarak kullanarak taşımak istiyorum. Örneğin, 10 karakterden uzun dosya taşımak istiyorum.Dosyaları dosya adı uzunluğuna göre taşıma

Bash komut dosyasında bir if döngüsüne ihtiyacım olduğunu varsaydım, ancak nasıl devam edeceğimi bilmiyorum.

+1

Bir döngü kullanın ve bu http://unix.stackexchange.com/questions/92463/in-bash-how-does-one-determining-the-length-of-filename. Bash'da döngüler için çevrimiçi arama yapın. –

+1

Aslında bütün bu şeyleri nasıl yapacağımı bilmiyorum ama her seferinde bir adım atalım ... Gereksinim duyduğunuz bazı fonksiyonları zaten biliyorsunuz; bir dizinde dosya bulma, bir dizenin uzunluğunu alma, karşılaştırma (en az/daha fazla) ve hareketli dosyaları yapma. İşte [bir dizenin uzunluğunu nasıl bulacağınız] (https://stackoverflow.com/questions/17368067/length-of-string-in-bash), 'ls' komutu bir dizinin içeriğini listeler. 'dosyaları taşımak için kullanılır ve eğer [some_condition]' ifadeleri karşılaştırmak/test etmek için kullanılabilir. Bununla çalışmayı deneyin ve örneklerle adam sayfalarını arayın. – jDo

cevap

2

kullanımı bu şablon

for f in *; do if [ ${#f} -gt 10 ]; then echo $f; fi; done 

sizin mv komutuyla yankı değiştirin.

dizinlerin de listede olacağını unutmayın.