作者stephen7710 (YA)
标题Re: [问题] 取得资料夹下的资料夹资料
时间Thu Oct 16 22:29:34 2014
谢谢你的回答
我把ctime放到 %hash的key 资料夹名放到value
然後
foreach $time(sort keys %hash )
{
print("$time, $hash{"$time"}\n");
}
类似这样 可能有些语法有错请见谅
因为取得的ctime是位数的数字ex 1000000000
所以可以这样排 之後再用localtime转换
我记得我是用my $user_name = getpwuid($uid);
print 出来的 $uid 是0或1或2之类的
然後去/etc/passwd 看确实对应的就是root那些的
不过并不是我ls看到的owner
/etc/passwd 下也没有一般的使用者列表
谢谢
※ 引述《CindyLinz (Cindy Wang)》之铭言:
: ※ 引述《stephen7710 (YA)》之铭言:
: : 版友好 小弟新手
: : 现有A资料夹 底下有B C D三个资料夹
: : 想写一个可以取得B C D三个资料夹的资料 如owner、group
: : 、资料夹名 并且按照修改日期排序
: : 原本是有写一个利用stat取得各资料夹的ctime
: : 用 readdir取得资料夹名
: : 并且把他们放到hash 并且sort(ctime) 是有成功
: : 但因为是用hash 就只能处理资料夹名和日期而已
: : 现在有2个问题
: : 1.若要多些资料(owner、group)是不是就不能用hash? 因为hash 只有 key和value两种
: : 一个放资料夹名 一个放修改日期就没了
: : 2.stat函数
: : ($device, $inode, $mode, $nlink, $uid, $gid, $rdev, $size,
: : $atime, $mtime, $ctime, $blksize, $blocks) =
: : stat("资料夹名");
: : 要怎麽用$uid $gid 取得资料夹的 owner group??
: : 参考网页http://www.perlmonks.org/?node_id=638015
: : 还是不行 会取得root 或着syn 怪怪的使用者名
: : 我猜是因为他是按照/etc/passwd去找的
: : 不过我使用的工作站使用者的uid并没有记录在里面 所以不成功
: : 3.除了我想的方法还有甚麽其他方法可以做到我要的目的吗?
: : 谢谢各位了!!!
: 1. 能不能多讲一下这个对 hash 排序指的是什麽?
: 我以为 hash 是让我们由 key 取得对应的 value,
: 没有看出什麽可以控制顺序的地方 @@"
: 2. 的确是用 getpwuid 和 getgrgid,
: my $user_name = getpwuid($uid);
: my $group_name = getgrgid($gid);
: 然後再拿 $user_name 和 $group_name 去用..
: 我猜你可能用到了 getpwuid($uid) 的 list context 用法.. 像是
: my @user_data = getpwuid($uid);
: 这样拿到的 @user_data 阵列里面的资料是
: ($name,$passwd,$uid,$gid,$quota,$comment,$gcos,$dir,$shell,$expire)
: 然後直接把整个阵列印出来了..
: 可以看一下 perldoc -f getpwuid 的说明~
: 当然, 如果 server 上真的没有存着这一笔 uid 的资料, 那的确还是取不到名字的 @@"
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.195.54.26
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Perl/M.1413469777.A.CC0.html