다른 곳에서 답변이 있으면 죄송합니다. 문제를 검색하는 방법을 모르겠습니다.
Redhat Linux HPC 서버에서 일부 시뮬레이션을 실행 중이며 폴더 구조를 처리하여 출력을 저장하는 코드에 불행한 버그가있었습니다. 폴더를 만드는 matlab 코드는 다음과 같습니다.
folder = [sp.saveLocation, 'run_', sp.run_number, '/'];
sp.run_number
정수는 어디에 있었습니까? 문자열로 변환하는 것을 잊었지만 어떤 이유로 든 mkdir(folder);
matlab에서 계속 실행 되었습니다. 실제로 시뮬레이션은 장애없이 실행되었으며 데이터는 일치하는 디렉토리에 저장되었습니다.
이제 폴더 구조를 쿼리 / 인쇄하면 다음과 같은 상황이 발생합니다.
- 탭 자동 완성을 시도하면 :
run_ run_^A/ run_^B/ run_^C/ run_^D/ run_^E/ run_^F/ run_^G/ run_^H/ run_^I/
- 내가 사용할 때
ls
:run_ run_? run_? run_? run_? run_? run_? run_? run_? run_? run_?
. - rsync를 사용하여 Mac으로 전송할 때
--progress
옵션은 다음run_\#003/
과 같이 표시됩니다 : 등의 숫자sp.run_number
는 3 자리 로 채워진 정수와 일치합니다.run_\#010/
- 파인더에서 폴더를 볼 때
run_ run_ run_ run_ run_ run_ run_ run_ run_ run_?
- 이 질문을 보고
ls | LC_ALL=C sed -n l
내가 얻는 명령을 사용하십시오 .
run_$
run_\001$
run_\002$
run_\003$
run_\004$
run_\005$
run_\006$
run_\a$
run_\b$
run_\t$
run_$
cd
이러한 표현 중 하나를 사용하여 폴더를 관리 할 수 없습니다 .
이 폴더는 수천 개이므로 스크립트로 수정해야합니다. 다음 중 올바른 폴더 표시 옵션은 무엇입니까? 프로그래밍 방식으로 이러한 폴더를 참조하여 bash 스크립트를 사용하여 올바른 형식의 이름으로 바꾸려면 어떻게해야합니까? 그리고 호기심을 위해서, 어떻게 이런 일이 처음에 일어 났습니까?
run_
입력해야합니다
/
. 제어 문자를 포함한 다른 모든 문자가 유효합니다. sp.run_number가 0 인 경우 matlab이 어떤 작업을 수행했는지 알 수 없습니다 ( run_
NUL 바이트가 디렉토리 이름 문자열을 종료하므로 오류가 발생하거나 중단됩니다 ). 물론 이것은 NUL 바이트가 포함 된 16 비트 (또는 그 이상) 값에서도 문제가 될 수 있으며 matlab을 실행하는 시스템의 엔디안 (endian-ness)에 따라 달라집니다.
^A
문자 그대로^
뒤에옵니다A
. 그러나 Ctrl-A (Ctrl-A는 일반적으로 쉘의 바로 가기이므로 Ctrl-V Ctrl-A를 사용하여 입력 할 수 있습니다).