지저분한 파일 경로에서 정식 파일 경로를 쉽게 찾을 수 있습니까? 예를 들어Ruby의 정식 파일 경로
:
a/b/../c/x
는a/c/x
a/./b/c/x
같은이 작업을 수행하기 위해 어떤 간단한 방법c/x
과 동일 a/b/c/x
a/./b/../../c/x
과 동일하다?지저분한 파일 경로에서 정식 파일 경로를 쉽게 찾을 수 있습니까? 예를 들어Ruby의 정식 파일 경로
:
a/b/../c/x
는 a/c/x
a/./b/c/x
같은이 작업을 수행하기 위해 어떤 간단한 방법 c/x
과 동일 a/b/c/x
a/./b/../../c/x
과 동일하다?require 'pathname'
Pathname.new("a/b/../c/x").cleanpath
File.expand_path (FILE_NAME [dir_string]) abs_file_name
절대 경로에 대한 경로를 변환 →. 상대 경로는 dir_string을 지정하지 않으면 프로세스의 현재 작업 디렉토리에서 참조되며,이 경우 시작 경로로 사용됩니다. 주어진 경로 이름은 프로세스 소유자의 홈 디렉토리 (환경 변수 HOME
이 올바르게 설정되어야 함)로 확장되는 ~
으로 시작될 수 있습니다. ~user
은 명명 된 사용자의 홈 디렉토리로 확장됩니다.
File.expand_path("~oracle/bin") #=> "/home/oracle/bin"
File.expand_path("../../bin", "/tmp/x") #=> "/bin"
'당신이 다음 대신 cleanpath''의 realpath''사용 (Qt의'canonicalFilePath'처럼) 너무 심볼릭 링크를 제거하려면 'pathname.rb'' – JellicleCat
을 필요로한다. –
@Erik'realpath'는'cleanpath'와는 달리 파일 시스템에 접근하고 경로가 존재하지 않으면 실패합니다. – hagello