Bu dosya gibi özel karakterler içeren dosyalar içeren dizinler ve alt dizinler bir grup var:
robbie@phil:~$ ls test�sktest.txt
test?sktest.txt
Bul bir kaçış dizisi gösterir:
robbie@phil:~$ find test�sktest.txt -ls
424512 4000 -rwxr--r-x 1 robbie robbie 4091743 Jan 26 00:34 test\323sktest.txt
Konsolda isimlerini bile yazabilmemin tek nedeni sekme tamamlanması. Bu ayrıca onları manuel olarak yeniden adlandırabileceğim (ve özel karakteri çıkarabileceğim) anlamına gelir.
LC_ALL'i (yeni bir kabukta değil) yardımcı gibi görünmeyen UTF-8'e ayarladım:
robbie@phil:~$ echo $LC_ALL
en_US.UTF-8
Makineye mac bilgisayarımdan ssh kullanarak bağlanıyorum. Bu bir Ubuntu kurulumu:
robbie@phil:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=7.10
DISTRIB_CODENAME=gutsy
DISTRIB_DESCRIPTION="Ubuntu 7.10"
Kabuk Bash, TERM xterm rengine ayarlı.
Bu dosyalar bir süredir orada ve bu Ubuntu yüklemesi kullanılarak oluşturulmadı. Yani sistem kodlama ayarlarının ne olduğunu bilmiyorum.
Ben şeyler boyunca denedim:
find . -type f -ls | sed 's/[^a-zA-Z0-9]//g'
Ama istediğim her şeyi yapan bir çözüm bulamıyorum:
- Görüntülenemeyen karakterleri olan tüm dosyaları tanımlayın (yukarıdakiler çok fazla yok sayar)
- Bir dizin ağacındaki tüm dosyalar için (özyinelemeli olarak) mv oldname newname komutunu yürütün
- İsteğe bağlı olarak, ä gibi özel karakterleri a'ya dönüştürme yeteneği (zorunlu değildir, ancak harika olur)
VEYA
- Tüm bu dosyaları doğru şekilde görüntüle (ve açmaya çalışırken uygulamalarda hata yok)
Tüm dosyalar üzerinde yineleme ve taşıma gibi bitleri ve parçaları var, ancak dosyaları tanımlamak ve mv komutu için doğru biçimlendirmek zor kısım gibi görünüyor.
Neden doğru görüntülenmediklerine veya doğru kodlamanın nasıl "tahmin edileceğine" ilişkin ek bilgiler de kabul edilir. (Convmv'i denedim ama tam olarak istediğimi yapmıyor gibi görünüyor: http://j3e.de/linux/convmv/ )