Bunun başka bir yerde cevabı varsa, sorunumu nasıl arayacağımı bilmiyorum.
Redhat linux HPC sunucusunda bazı simülasyonlar yapıyordum ve çıktıyı kaydetmek için klasör yapısını işlemek için kodum talihsiz bir hataya sahipti. Klasörü oluşturmak için matlab kodum:
folder = [sp.saveLocation, 'run_', sp.run_number, '/'];
sp.run_number
tamsayı nerede ? Bir dizeye dönüştürmeyi unuttum, ancak bazı nedenlerden dolayı mkdir(folder);
(matlab'da) hala başarılı oldu. Aslında, simülasyonlar sorunsuz bir şekilde yürütüldü ve veriler eşleşen dizine kaydedildi.
Şimdi, klasör yapısı sorgulandığında / yazdırıldığında aşağıdaki durumları elde ediyorum:
- Otomatik tamamlama sekmesini denediğimde:
run_ run_^A/ run_^B/ run_^C/ run_^D/ run_^E/ run_^F/ run_^G/ run_^H/ run_^I/
- Ne zaman kullanmak
ls
:run_ run_? run_? run_? run_? run_? run_? run_? run_? run_? run_?
. - Ben rsync kullanarak benim mac için aktarırken
--progress
opsiyon gösterileri:run_\#003/
vb ile giriş tamsayı eşleşen numarası (ı varsayalım)sp.run_number
10 çalıştırmak üç rakamına yastıklı, bu nedenlerun_\#010/
- Bulucudaki klasörleri görüntülediğimde
run_ run_ run_ run_ run_ run_ run_ run_ run_ run_?
- Bu soruya bakarak ve şu komutu kullanarak
ls | LC_ALL=C sed -n l
:
run_$
run_\001$
run_\002$
run_\003$
run_\004$
run_\005$
run_\006$
run_\a$
run_\b$
run_\t$
run_$
Ben yönetemez cd
bu temsillerin herhangi birini kullanarak klasörler halinde.
Bu klasörler binlerce var, bu yüzden bunu bir komut dosyası ile düzeltmek gerekir. Bu seçeneklerden hangisi klasörün doğru temsilidir? Bir bash komut dosyası kullanarak düzgün biçimlendirilmiş bir adla yeniden adlandırmak için bu klasörlere programlı olarak nasıl başvurabilirim? Ve merak uğruna, ilk etapta bu nasıl oldu?
run_
gidiyorum ve bir şeyler yazmak zorunda
/
. Kontrol karakterleri de dahil olmak üzere diğer tüm karakterler geçerlidir. Sp.run_number 0 olsaydı ne matlab yapardı bilmiyorum (muhtemelen bir hata ile iptal veya üretmek run_
, NUL bayt dizin adı dizesini sonlandırmak gibi). Tabii ki, bu, içinde bir NUL baytı olan 16 bit (veya daha yüksek) değerler için de sorunlu olacaktır ve ayrıca sistem çalıştıran matlabın endianitesine göre değişecektir.
^A
tam anlamıyla değildir^
ve ardındanA
, ancak Ctrl + A (Ctrl + A genellikle kabuk için bir kısa olduğu Ctrl V Ctrl-A kullanılarak bunu yazabilir).