Не должно быть никаких проблем. Имя файла в Linux - это всего лишь массив bytes, они не интерпретируются как текст (т.е. декодируются), если это необходимо. И в вашем случае это не так.
Например
[[email protected] t]$ ls
Começo xx
[[email protected] t]$find . -type d
.
./Começo
./xx
[[email protected] t]$ find . -type d -exec bash -c 'echo ${0#/Folder/}' {} \;
.
./Começo
./xx
[[email protected] t]$ find . -type d -exec bash -c 'echo ${0#/Folder/}' {} \; > list.txt
[[email protected] t]$ cat list.txt
.
./Começo
./xx
[[email protected] t]$ od -c list.txt
0000000 . \n . / C o m e 303 247 o \n . / x x
0000020 \n
0000021
Мы можем вывести из od
вывод, что, потому что мой Linux сессия была UTF-8 локали кодировку, имя файла внутренне представлен с UTF-8 кодирования (7 байт).
Важно понять, что команды, как ls
и find
просто плюет, что последовательность байтов без «декодирования» их как текст, это просто работа консоли (в моем случае, в UTF-8, так что я их вижу ОК). То же самое можно сказать о сгенерированном файле list.txt
, внутри него мы имеем только сырые байты, соответствующие именам файлов. И, опять же, я вижу их в порядке, когда я это cat
, потому что (и только потому) моя консоль имеет правильную кодировку (UTF-8).
Только если я попытаюсь увидеть файл в другой среде, консоль с другим языковым стандартом или текстовым редактором, который читает его как ISO-8859-1 или другую кодировку, я увижу «странные символы "
[[email protected] t]$ cat list.txt
.
./Começo
./xx
(После установки моей консоли кодировку ISO-8859-1 - в моем случае, Konsole-> Settings-> Изменить профиль -> Дополнительно -> кодирование)
Под" экспортировать TXT со всеми папки ... "вы имеете в виду" сгенерировать текстовый файл с именами всех папок ... "? Кроме того, мы говорим об Linux, нет? – leonbloy
И да, вы хотите преобразовать файл, а именно текстовый файл, содержащий все эти имена. – Siguza
@leonbloy Да, сгенерируйте txt-файл со всеми непустыми папками в каталоге. – blocnt