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

看板Perl作者 (YA)時間9年前 (2014/10/16 22:29), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/5 (看更多)
謝謝你的回答 我把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://www.ptt.cc/bbs/Perl/M.1413469777.A.CC0.html
文章代碼(AID): #1KFzPHp0 (Perl)
討論串 (同標題文章)
文章代碼(AID): #1KFzPHp0 (Perl)