Aion-Fs
view release on metacpan or search on metacpan
lib/Aion/Fs.md view on Meta::CPAN
local $_ = ["A", 0755];
mkpath # => A
eval { mkpath "/A/" }; $@ # ~> mkpath /A: Permission denied
mkpath "A///./file";
-d "A" # -> 1
```
### See also
* [File::Path](https://metacpan.org/pod/File::Path) â `mkpath("dir1/dir2")`.
* [File::Path::Tiny](https://metacpan.org/pod/File::Path::Tiny) â `File::Path::Tiny::mk($path)`. Ðе вÑбÑаÑÑÐ²Ð°ÐµÑ Ð¸ÑклÑÑений.
## mtime (;$path)
ÐÑÐµÐ¼Ñ Ð¼Ð¾Ð´Ð¸ÑикаÑии `$path` в unixtime Ñ Ð´Ñобной ÑаÑÑÑÑ (из `Time::HiRes::stat`). Ðез паÑамеÑÑа иÑполÑзÑÐµÑ `$_`.
ÐÑбÑаÑÑÐ²Ð°ÐµÑ Ð¸ÑклÑÑение, еÑли Ñайл не ÑÑÑеÑÑвÑÐµÑ Ð¸Ð»Ð¸ Ð½ÐµÑ Ð¿Ñав:
```perl
local $_ = "nofile";
eval { mtime }; $@ # ~> mtime nofile: No such file or directory
mtime ["/"] # ~> ^\d+(\.\d+)?$
```
### See also
* `-M` â `-M "file.txt"`, `-M _` в днÑÑ
Ð¾Ñ ÑекÑÑего вÑемени.
* [stat](https://metacpan.org/pod/stat) â `(stat "file.txt")[9]` в ÑекÑндаÑ
(unixtime).
* [Time::HiRes](https://metacpan.org/pod/Time::HiRes) â `(Time::HiRes::stat "file.txt")[9]` в ÑекÑндаÑ
Ñ Ð´Ñобной ÑаÑÑÑÑ.
* [Mojo::File](https://metacpan.org/pod/Mojo::File) â `path($file)->stat->mtime`.
## sta (;$path)
ÐозвÑаÑÐ°ÐµÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð¾ Ñайле. Ðез паÑамеÑÑа иÑполÑзÑÐµÑ `$_`.
ЧÑÐ¾Ð±Ñ Ð¼Ð¾Ð¶Ð½Ð¾ бÑло иÑполÑзоваÑÑ Ñ Ð´ÑÑгими ÑайловÑми ÑÑнкÑиÑми, Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð»ÑÑаÑÑ ÑÑÑÐ»ÐºÑ Ð½Ð° маÑÑив из коÑоÑого беÑÑÑ Ð¿ÐµÑвÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð² каÑеÑÑв...
ÐÑбÑаÑÑÐ²Ð°ÐµÑ Ð¸ÑклÑÑение, еÑли Ñайл не ÑÑÑеÑÑвÑÐµÑ Ð¸Ð»Ð¸ Ð½ÐµÑ Ð¿Ñав:
```perl
local $_ = "nofile";
eval { sta }; $@ # ~> sta nofile: No such file or directory
sta(["/"])->{ino} # ~> ^\d+$
sta(".")->{atime} # ~> ^\d+(\.\d+)?$
```
### See also
* [Fcntl](https://metacpan.org/pod/Fcntl) â ÑодеÑÐ¶Ð¸Ñ ÐºÐ¾Ð½ÑÑанÑÑ Ð´Ð»Ñ ÑаÑÐ¿Ð¾Ð·Ð½Ð°Ð²Ð°Ð½Ð¸Ñ Ñежима.
* [BSD::stat](https://metacpan.org/pod/BSD::stat) â дополниÑелÑно возвÑаÑÐ°ÐµÑ atime, ctime и mtime в наноÑекÑндаÑ
, Ñлаги полÑзоваÑÐµÐ»Ñ Ð¸ Ð½Ð¾Ð¼ÐµÑ Ð³ÐµÐ½ÐµÑаÑии Ñайла. ÐÐ¼ÐµÐµÑ ÐÐÐ...
* [File::chmod](https://metacpan.org/pod/File::chmod) â `chmod("o=,g-w","file1","file2")`, `@newmodes = getchmod("+x","file1","file2")`.
* [File::stat](https://metacpan.org/pod/File::stat) â пÑедоÑÑавлÑÐµÑ ÐÐÐ-инÑеÑÑÐµÐ¹Ñ Ðº stat.
* [File::Stat::Bits](https://metacpan.org/pod/File::Stat::Bits) â аналогиÑен [Fcntl](https://metacpan.org/pod/Fcntl).
* [File::stat::Extra](https://metacpan.org/pod/File::stat::Extra) â ÑаÑÑиÑÑÐµÑ [File::stat](https://metacpan.org/pod/File::stat) меÑодами Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии о Ñежиме, а Ñак же пеÑезагÑ...
* [File::Stat::Ls](https://metacpan.org/pod/File::Stat::Ls) â возвÑаÑÐ°ÐµÑ Ñежим в ÑоÑмаÑе ÑÑилиÑÑ ls.
* [File::Stat::Moose](https://metacpan.org/pod/File::Stat::Moose) â ÐÐРинÑеÑÑÐµÐ¹Ñ Ð½Ð° Moose.
* [File::Stat::OO](https://metacpan.org/pod/File::Stat::OO) â пÑедоÑÑавлÑÐµÑ ÐÐÐ-инÑеÑÑÐµÐ¹Ñ Ðº stat. ÐÐ¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑаÑÑ atime, ctime и mtime ÑÑÐ°Ð·Ñ Ð² `DateTime`.
* [File::Stat::Trigger](https://metacpan.org/pod/File::Stat::Trigger) â Ñледилка за изменением аÑÑибÑÑов Ñайла.
* [Linux::stat](https://metacpan.org/pod/Linux::stat) â паÑÑÐ¸Ñ /proc/stat и возвÑаÑÐ°ÐµÑ Ð´Ð¾Ð¿-инÑоÑмаÑиÑ. Ðднако в дÑÑгиÑ
ÐС не ÑабоÑаеÑ.
* [Stat::lsMode](https://metacpan.org/pod/Stat::lsMode) â возвÑаÑÐ°ÐµÑ Ñежим в ÑоÑмаÑе ÑÑилиÑÑ ls.
* [VMS::Stat](https://metacpan.org/pod/VMS::Stat) â возвÑаÑÐ°ÐµÑ ÑпиÑки VMS ACL.
## path (;$path)
Ð Ð°Ð·Ð±Ð¸Ð²Ð°ÐµÑ ÑайловÑй пÑÑÑ Ð½Ð° ÑоÑÑавлÑÑÑие или ÑобиÑÐ°ÐµÑ ÐµÐ³Ð¾ из ÑоÑÑавлÑÑÑиÑ
.
* ÐÑли полÑÑÐ°ÐµÑ ÑÑÑÐ»ÐºÑ Ð½Ð° маÑÑив, Ñо воÑпÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÐµÐ³Ð¾ пеÑвÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ ÐºÐ°Ðº пÑÑÑ.
* ÐÑли полÑÑÐ°ÐµÑ ÑÑÑÐ»ÐºÑ Ð½Ð° Ñ
ÑÑ, Ñо ÑобиÑÐ°ÐµÑ Ð¸Ð· него пÑÑÑ. ÐезнакомÑе клÑÑи пÑоÑÑо игноÑиÑÑеÑ. ÐÐ°Ð±Ð¾Ñ ÐºÐ»ÑÑей Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ФС â ÑазнÑй.
* ФС беÑÑÑÑÑ Ð¸Ð· ÑиÑÑемной пеÑеменной `$^O`.
* Ð Ñайловой ÑиÑÑеме не обÑаÑаеÑÑÑ.
```perl
{
local $^O = "freebsd";
path "." # --> {path => ".", file => ".", name => "."}
path ".bashrc" # --> {path => ".bashrc", file => ".bashrc", name => ".bashrc"}
path ".bash.rc" # --> {path => ".bash.rc", file => ".bash.rc", name => ".bash", ext => "rc"}
path ["/"] # --> {path => "/", dir => "/"}
local $_ = "";
path # --> {path => ""}
path "a/b/c.ext.ly" # --> {path => "a/b/c.ext.ly", dir => "a/b", file => "c.ext.ly", name => "c", ext => "ext.ly"}
path +{dir => "/", ext => "ext.ly"} # => /.ext.ly
path +{file => "b.c", ext => "ly"} # => b.ly
path +{path => "a/b/f.c", dir => "m"} # => m/f.c
local $_ = +{path => "a/b/f.c", dir => undef, ext => undef};
path # => f
path +{path => "a/b/f.c", volume => "/x", dir => "m/y/", file => "f.y", name => "j", ext => "ext"} # => m/y//j.ext
path +{path => "a/b/f.c", volume => "/x", dir => "/y", file => "f.y", name => "j", ext => "ext"} # => /y/j.ext
}
{
local $^O = "MSWin32"; # also os2, symbian and dos
path "." # --> {path => ".", file => ".", name => "."}
path ".bashrc" # --> {path => ".bashrc", file => ".bashrc", name => ".bashrc"}
path "/" # --> {path => "\\", dir => "\\", folder => "\\"}
path "\\" # --> {path => "\\", dir => "\\", folder => "\\"}
path "" # --> {path => ""}
path "a\\b\\c.ext.ly" # --> {path => "a\\b\\c.ext.ly", dir => "a\\b\\", folder => "a\\b", file => "c.ext.ly", name => "c", ext => "ext.ly"}
path +{dir => "/", ext => "ext.ly"} # => \\.ext.ly
path +{dir => "\\", ext => "ext.ly"} # => \\.ext.ly
path +{file => "b.c", ext => "ly"} # => b.ly
path +{path => "a/b/f.c", dir => "m/r/"} # => m\\r\\f.c
path +{path => "a/b/f.c", dir => undef, ext => undef} # => f
path +{path => "a/b/f.c", volume => "x", dir => "m/y/", file => "f.y", name => "j", ext => "ext"} # \> x:m\y\j.ext
path +{path => "x:/a/b/f.c", volume => undef, dir => "/y/", file => "f.y", name => "j", ext => "ext"} # \> \y\j.ext
}
{
local $^O = "amigaos";
my $path = {
( run in 0.873 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )