Re: [问题] 取得资料夹下的资料夹资料

楼主: stephen7710 (YA)   2014-10-16 22:29:34
谢谢你的回答
我把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 的资料, 那的确还是取不到名字的 @@"

Links booklink

Contact Us: admin [ a t ] ucptt.com