dosya adında özel karakter (\ # 033OA)


10

Bir rsync sırasında çok inatçı bir hatayla ilgili küçük bir problemim var. Dosya adında özel karakterli bir dosyadan kaynaklanır. Başkaları da vardı ama bunu dosya adının kodlamasında bir dönüşüm yaparak çözebilirim. Ancak bu dosyayı bile bulamıyorum.

İşte rsync şöyle diyor:

../.\#033OA.tex.pyD0MB" failed: No such file or directory (2)

İlk şey bir uyarilar Ben googled ve sadece bulduk bu yüzden karakter kodu altıgen veya sekizli olamaz olmasıdır bu . Yani bir CURSOR UPkarakter olabilir (ya da olmayabilir). denedim

ls -la *`printf '\033OA'`*

boşuna. Ben de odboşuna bu dizinin ls çıkışını boru denedim .

Başka ne yapabilirim? Ya da yine de hangi karakteri arıyorum?

Teşekkürler


1
ls -bC tarzı kaçışları göstermesi gereken deneyin
enzotib

teşekkürler ... bu yardımcı oldu ... printf yardımı ile hareket ettirebilir o zaman ... Bu yorumu cevap olarak tekrar gönderirseniz, memnuniyetle kabul edeceğim :)
luxifer

Yanıtlar:


9

Grafik olmayan karakterleri C stili kaçış dizileri olarak gösteren -bseçeneği kullanabilirsiniz ls.


1

ls -aq?yazdırılamayan her karakter yerine tüm dosya adlarını yazdırır . Birçok unix varyantında ls -ABveya ls -Ab(man sayfanızı kontrol edin) sekizlik kaçışları yazdırır. İle ls -aq, görüntülenen çıktıyı kabuk deseni olarak kullanabilirsiniz.

$ ls -Aq
.?OA.tex.pyD0MB
… more stuff …
$ mv -i .?OA.tex.pyD0MB weird-file
$ less weird-file

Dosya adına bir şekilde ulaşmanın başka bir yolu da kabuğunuzun tamamlanmasını kullanmaktır: garip ad girilene kadar girin mv .ve Tabtekrar tekrar basın .


ls -qdosyayı göstermedi ls -b. belki çünkü onun dosya adı değildi [weird-character]OA.texama gerçekten`printf %b '\033OA'`.tex
luxifer

@luxifer .Dosya adının başında bir tane var , bu yüzden ls -Aqveya ls -aq. Kabuk joker karakterlerini kullanırsanız, .açık bir şekilde yapmanız gerekir : *dosyayı içermez, ancak içerir .*.
Gilles 'SO- kötü olmayı kes

hayır yoktu! Gönderdiğim çıktı rsync'den ve satırın sonuydu. Rsync $DESTINATION/.$FILENAME, dosyayı doğru ada taşımadan önce ilk önce kopyalar . Bu nedenle, kaynakta dosyanın .adının başında hayır vardı . Ayrıca, dediğim gibi ls -qdosyayı ls -bgöstermezdi.
luxifer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.