8 ответов:
по заданному пути с помощью
-eоператор проверки файлов.print "$base_path exists!\n" if -e $base_path;однако этот тест, вероятно, шире, чем вы предполагаете. Приведенный выше код будет генерировать выходные данные, если простой файл существует на этом пути, но он также будет срабатывать для каталога, именованного канала, символической ссылки или более экзотической возможности. см. документацию для сведения.
учитывая расширение
.TGZв вашем вопросе, кажется что вы ожидаете обычный файл, а не альтернативы. Элемент-ffile-оператор теста спрашивает, ведет ли путь к обычному файлу.print "$base_path is a plain file!\n" if -f $base_path;документация perlfunc охватывает длинный список операторы проверки файлов Perl это охватывает многие ситуации, с которыми вы столкнетесь на практике.
-r
Файл читается эффективным uid / gid.-w
Файл доступен для записи с помощью эффективного uid / gid.-x
Файл исполняется эффективным uid / gid.-o
Файл принадлежит эффективному uid.-R
Файл читается реальным uid / gid.-W
Файл доступен для записи с помощью реального uid / gid.-X
Файл исполняется реальным uid / gid.-O
Файл принадлежит реальному uid.-e
Файл существует.-z
Файл имеет нулевой размер (пуст).-s
Файл имеет ненулевой размер (возвращает размер в байтах).-f
Файл-это обычный файл.-d
Файл-это каталог.-l
Файл-это символьная ссылка (false, если символьные ссылки не поддерживаются файловой системой).-p
Файл-это именованный канал (FIFO), или Filehandle-это канал.-S
Файл-это сокет.-b
Файл-это блочный специальный файл.-c
Файл-это специальный символьный файл.-t
Файловый хэндл открывается на tty.-u
Файл имеет установленный бит setuid.-g
Файла бит setgid.-k
Файл имеет липкий набор бит.-T
Файл представляет собой текстовый файл ASCII или UTF-8 (эвристическое предположение).-B
Файл является "двоичным" файлом (напротив-T).-M
Время запуска скрипта минус время изменения файла, в днях.-A
То же самое для времени доступа.-C
То же самое для времени изменения индекса (Unix, может отличаться для других платформ)
вы, возможно, захотите, такой вариант существует ... perldoc-f" - f"
-X FILEHANDLE -X EXPR -X DIRHANDLE -X A file test, where X is one of the letters listed below. This unary operator takes one argument, either a filename, a filehandle, or a dirhandle, and tests the associated file to see if something is true about it. If the argument is omitted, tests $_, except for "-t", which tests STDIN. Unless otherwise documented, it returns 1 for true and '' for false, or the undefined value if the file doesn’t exist. Despite the funny names, precedence is the same as any other named unary operator. The operator may be any of: -r File is readable by effective uid/gid. -w File is writable by effective uid/gid. -x File is executable by effective uid/gid. -o File is owned by effective uid. -R File is readable by real uid/gid. -W File is writable by real uid/gid. -X File is executable by real uid/gid. -O File is owned by real uid. -e File exists. -z File has zero size (is empty). -s File has nonzero size (returns size in bytes). -f File is a plain file. -d File is a directory. -l File is a symbolic link. -p File is a named pipe (FIFO), or Filehandle is a pipe. -S File is a socket. -b File is a block special file. -c File is a character special file. -t Filehandle is opened to a tty. -u File has setuid bit set. -g File has setgid bit set. -k File has sticky bit set. -T File is an ASCII text file (heuristic guess). -B File is a "binary" file (opposite of -T). -M Script start time minus file modification time, in days.
if (-e $base_path) { # code }
-eявляется оператором' existence ' в Perl.Вы можете проверить разрешения и прочие атрибуты, используя код на этой странице.
использование:
if (-f $filePath) { # code }
-eвозвращает true, даже если файл является каталогом.-fвернет true только если это фактический файл
#!/usr/bin/perl -w $fileToLocate = '/whatever/path/for/file/you/are/searching/MyFile.txt'; if (-e $fileToLocate) { print "File is present"; }
использовать ниже код. Вот-F проверяет, файл это или нет:
print "File $base_path is exists!\n" if -f $base_path;и наслаждаться
Comments