아무런 문제가 없습니다. 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
우리는 내 리눅스 세션이 UTF-8 로케일 인코딩을했기 때문에, 파일 이름은 내부적으로 UTF-8 인코딩 (7 바이트)로 표현 된 것으로, od
출력에서 추론 할 수있다.
ls
및 find
과 같은 명령은 텍스트로 "디코딩"하지 않고 해당 바이트 시퀀스를 내뿜는다는 것을 이해하는 것이 중요합니다. 이것은 콘솔의 작업입니다 (제 경우에는 UTF-8로 표시되므로 볼 수 있습니다). 승인). 생성 된 파일 list.txt
에 대해서도 마찬가지입니다. 파일 이름에 해당하는 원시 바이트 만 있습니다. 그리고, 내 콘솔이 적절한 인코딩 (UTF-8)을 가지고 있기 때문에 다시 cat
일 때 확인합니다.
다른 환경, ISO-8859-1 또는 다른 인코딩으로 읽으려고 시도하는 다른 로켈 또는 일부 텍스트 뷰어 편집기가있는 콘솔에서 파일을 보려고 만하면 "이상한 문자 "
[[email protected] t]$ cat list.txt
.
./Começo
./xx
(ISO-8859-1로 내 콘솔 인코딩을 설정 한 후 - 내 경우, Konsole- -> 설정 -> 프로필 수정 -> 고급 -> 인코딩)으로
는"모두와 TXT를 내보내기 폴더 ... "라는 말은"모든 폴더의 파일 이름으로 텍스트 파일 생성 ... "을 의미합니까? 게다가, 우리는 리눅스에 대해서 말하고 있습니다. – leonbloy
그리고 네, 파일, 즉 모든 이름을 포함하는 텍스트 파일을 변환하고 싶습니다. – Siguza
@leonbloy 예, 디렉토리에 비어 있지 않은 모든 폴더가있는 txt 파일을 생성하십시오. – blocnt