클래스 IO::Spec::Cygwin

클래스 IO::Spec::Cygwin (IO::Spec::Cygwin) (raku-type-io-spec-cygwin)

Raku 인터프리터가 Cygwin에서 돌고 있다면, $*SPEC 변수로 이 타입의 객체를 쓸 수 있어요.

class IO::Spec::Cygwin is IO::Spec::Unix { }

이 클래스와 관련 클래스들에 대한 내용은 IO::Spec도 함께 보면 좋아요.

method abs2rel

method abs2rel(IO::Path:D $path, IO::Path:D $base = $*CWD --> Str:D)

$path$base에 상대적인 문자열로 표현해서 돌려줘요. $path$base 모두 상대 경로일 수 있어요. $base의 기본값은 $*CWD예요. IO::Spec::Win32의 시맨틱스를 사용해요.

method canonpath

method canonpath(Str() $path, :$parent --> Str:D)

$path의 정규(canonical) 표현 문자열을 돌려줘요. :$parent를 true로 설정하면 부모 디렉터리 참조도 정리해요. 참고: 이 루틴은 파일시스템에 접근하지 않아요.

IO::Spec::Cygwin.canonpath(「C:\foo\\..\bar\..\ber」).say;
# OUTPUT: «C:/foo/../bar/../ber␤»

IO::Spec::Cygwin.canonpath("foo///./../bar/../ber").say;
# OUTPUT: «foo/../bar/../ber␤»

IO::Spec::Cygwin.canonpath("foo///./../bar/../ber", :parent).say;
# OUTPUT: «ber␤»

method catdir

method catdir (*@parts --> Str:D)

여러 경로 조각을 이어 붙여 그 결과 경로의 정규 표현을 문자열로 돌려줘요. @partsStr 객체들이고 경로 구분자를 포함할 수 있어요.

IO::Spec::Cygwin.catdir(<foo/bar ber raku>).say;
# OUTPUT: «foo/bar/ber/raku␤»

method catpath

method catpath (Str:D $volume, Str:D $dir, Str:D $file --> Str:D)

IO::Spec::Win32.catpath와 같지만, 마지막에 모든 백슬래시를 슬래시로 바꿔요.

IO::Spec::Cygwin.catpath('C:', '/some/dir', 'foo.txt').say;
# OUTPUT: «C:/some/dir/foo.txt␤»

IO::Spec::Cygwin.catpath('C:', '/some/dir', '').say;
# OUTPUT: «C:/some/dir␤»

IO::Spec::Cygwin.catpath('', '/some/dir', 'foo.txt').say;
# OUTPUT: «/some/dir/foo.txt␤»

IO::Spec::Cygwin.catpath('E:', '', 'foo.txt').say;
# OUTPUT: «E:foo.txt␤»

method is-absolute

method is-absolute(Str:D $path --> Bool:D)

$path가 슬래시("/")나 백슬래시("\\")로 시작하면 True를 돌려줘요. 결합 문자(combining character)가 붙어 있어도 그렇고, 앞에 볼륨이 있어도 돼요.

say IO::Spec::Cygwin.is-absolute: "/foo";        # OUTPUT: «True␤»
say IO::Spec::Cygwin.is-absolute: "/\x[308]foo"; # OUTPUT: «True␤»
say IO::Spec::Cygwin.is-absolute: 「C:\foo」;      # OUTPUT: «True␤»
say IO::Spec::Cygwin.is-absolute: "bar";         # OUTPUT: «False␤»

method join

method join(|c)

IO::Spec::Win32.join과 같지만, 최종 결과의 백슬래시를 슬래시로 바꿔요.

method rel2abs

method rel2abs(|c --> List:D)

IO::Spec::Win32.rel2abs과 같지만, 최종 결과의 백슬래시를 슬래시로 바꿔요.

method split

method split(IO::Spec::Cygwin: Cool:D $path)

IO::Spec::Win32.split과 같지만, 최종 결과의 모든 값에서 백슬래시를 슬래시로 바꿔요.

method splitpath

method splitpath(|c --> List:D)

IO::Spec::Win32.splitpath과 같지만, 최종 결과의 모든 값에서 백슬래시를 슬래시로 바꿔요.

method tmpdir

method tmpdir(--> IO::Path:D)

몇몇 대표적인 디렉터리와 환경 변수를 확인해 시스템의 임시 디렉터리를 찾으려 시도해요. 적당한 디렉터리가 없으면 현재 디렉터리를 써요.

출처: Raku Docs - IO::Spec::Cygwin