Mam niewielki problem z bardzo upartym błędem podczas rsync. Jest to spowodowane plikiem ze znakiem specjalnym w nazwie pliku. Były inne, ale mogłem to rozwiązać, dokonując konwersji w kodowaniu nazwy pliku. Jednak tego jednego pliku nawet nie mogę znaleźć.
Oto, co mówi rsync:
../.\#033OA.tex.pyD0MB" failed: No such file or directory (2)
Pierwszą rzeczą, na którą trzeba zwrócić uwagę, jest to, że kod znaków nie może być szesnastkowy ani ósemkowy, więc googolowałem i znalazłem tylko to . Może to być CURSOR UP
postać (lub nie). próbowałem
ls -la *`printf '\033OA'`*
bez skutku. Próbowałem również bezproblemowo sondować wyjście ls tego katalogu od
.
Co jeszcze mogę zrobić? Albo jakiej postaci szukam?
Dzięki
ls -b
, który powinien pokazywać ucieczki w stylu COdpowiedzi:
Możesz użyć
-b
opcjils
, która pokazuje znaki nie graficzne jako sekwencje specjalne w stylu C.źródło
ls -aq
wypisze wszystkie nazwy plików,?
zamiast każdego niedrukowalnego znaku. W wielu wariantach uniksowychls -AB
lubls -Ab
(sprawdź swoją stronę podręcznika) wypisuje ósemkowe znaki ucieczki. Za pomocąls -aq
można użyć wyświetlanego wyniku jako wzorca powłoki.Innym sposobem na uzyskanie nazwy pliku jest użycie uzupełnienia powłoki: wprowadź
mv .
i naciśnij Tabkilkakrotnie, aż zostanie wstawiona dziwna nazwa.źródło
ls -q
nie pokazał pliku,ls -b
ale zrobił. może dlatego, że jego nazwa pliku nie była,[weird-character]OA.tex
ale naprawdę`printf %b '\033OA'`.tex
.
początku nazwy pliku znajduje się, więc potrzebujeszls -Aq
lubls -aq
. A jeśli używasz symboli wieloznacznych powłoki, musisz.
jawnie powiedzieć:*
nie będzie zawierać pliku, ale.*
będzie.$DESTINATION/.$FILENAME
zanim przeniesie plik do poprawnej nazwy. Dlatego u źródła plik nie miał.
na początku swojej nazwy. Jak już powiedziano,ls -q
nie pokazałbym tego pliku, podczas gdyls -b
tak.