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