Re: [問題] 取得資料夾下的資料夾資料

看板Perl作者 (Cindy Wang)時間9年前 (2014/10/16 21:45), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/5 (看更多)
※ 引述《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), 來自: 112.121.80.249 ※ 文章網址: http://www.ptt.cc/bbs/Perl/M.1413467133.A.F9E.html
文章代碼(AID): #1KFylz-U (Perl)
文章代碼(AID): #1KFylz-U (Perl)