@args
=
stat
($filename)
my
$size
=
$args[7]
stat()函数返回一个数组。下面是数组各元素的含义。
0
dev
设备号
驱动器号(C:通常是2,D:通常是3,等等)
1
ino
索引节号
总是0
2
mode
文件的方式
无
3
nlink
链接号
通常为0;Windows
NT;文件系统允许链接
4
uid
文件所有者的用户ID(UID)总是0
5
gid
文件所有者的组ID(GID)总是0
6
rdev
特殊文件信息
驱动器号(重复)
7
size
文件大小(以字节计)文件大小(以字节计)
8
atime
上次访问的时间
上次访问的时间
9
mtime
上次修改的时间
上次修改的时间
10
ctime
Inode修改时间
文件的创建时间
11
blksz
磁盘块的大小
总是0
12
blocks
文件中的块的数量
总是0
例:获取文件时间
my
@array
=
stat("mysql.tar.gz")
"$array[9]\n"
$size=(stat)[7]
$size=(stat
filename)[7]
perl中的文件测试参数
-r
文件或是目录对该(有效)用户或组可读
-w
文件或是目录对该(有效)用户或组可写
-x
文件或是目录对该(有效)用户或组可
-o
文件或是目录被该(有效)用户所有
-R
文件或目录对该实际用户或组可读
-W
文件或目录对该实际用户或组可写
-X
文件或目录对该实际用户或组可执行
-O
文件或目录被该实际用户所有
-e
文件或目录存在
-z
文件存在,大小为零,判断文件是否大小为零(对目录总为假)
-s
文件存在,大小非零(即,文件大小,单位为字节)
-f
条目是个普通文件
-d
条目是个普通目录
-l
条目是个符号连接
-S
条目是个套接字
-p
条目是个命名管道(一个fifo)
-b
条目是个特殊(block-special)文件(如一个可装载磁盘)
-c
条目是个字符特殊(character-special)文件(如一个I/O设备)
-u
文件或目录是setuid
-g
文件或目录是setgid
-k
文件或目录的粘着位(sticky
bit)被设置
-t
文件句柄是个TTY(可由isatty()系统函数返回;文件名不能由本测试来测试)
-T
文件像是个“文本”文件
-B
文件像是个“二进制”文件
-M
更改年龄(单位:天)
-A
访问年龄(单位:天)
-C
Inode更改年龄(单位:天)
解答:ls -lh或者ls -l -h 把把文件和文件夹列表方式列出,并且显示大小;
第一行是不是有一个1.1k,这就是文件的大小,但是下面一行58为什么没有显示k呢,因为他比“k”还小,是“B”。
为什么1KB = 1024B而不是1000B,因为由于16位元电脑,记忆体用16 bits去格式化(format) 记忆体位元组基本单位是1 byte = 8 bits = 2^8是一个英文字大小,你要1000 bits一样得用到1024 bits = 16*64组的记忆体才行,而1 kb = 1000 bits这只会让每1 kb浪费了24 bits的空间
扩展资料:ls常用参数:
ls -a 把所有文件和目录列出来,包含隐藏的文件和目录。
ls -l 把文件和文件夹列表方式列出
ls -lh或者ls -l -h 把把文件和文件夹列表方式列出,并且显示大小;
ls -lha或者ls -l -h -a 把所有文件夹和文件(包括隐藏的)列表方式列出,并且包含大小;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)