PALMisLIFE 討論區

搜索
鹹魚爸魅力四射舞蹈教室
查看: 4962|回復: 12
打印 上一主題 下一主題

[求助] unix shell command求助

[複製鏈接]

67

主題

0

好友

237

積分

該用戶從未簽到

文章
135
跳轉到指定樓層
1#
發表於 2005-11-24 10:02 |只看該作者 |倒序瀏覽
又來求助了 B)
實在try不出來如何用find去找出最新file ><
我想寫一個shell, 可用來查出某路徑下最新檔案的名稱
不曉得有沒有example可以參考? B) 謝謝
分享淘帖0 分享分享0 收藏收藏0 頂0 踩0

95

主題

0

好友

1263

積分

?

該用戶從未簽到

文章
1337
2#
發表於 2005-11-24 10:35 |只看該作者

Re: [求助] unix shell command求助

比對檔案的建立時間? 應該不難吧
回復

使用道具 舉報

2

主題

0

好友

411

積分

該用戶從未簽到

文章
424
3#
發表於 2005-11-24 10:51 |只看該作者

Re: [求助] unix shell command求助

如果你運氣好使用zsh

fileList=(${buildsdir}/*(.oc))
latestFile=${fileList[0]}

[ Last edited by AlgerChen on 2005-11-24 at 10:56 ]
ARTIFICIAL INTELLIGENCE
回復

使用道具 舉報

22

主題

0

好友

5075

積分

  • TA的每日心情
    開心
    2011-4-28 00:03
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

    文章
    213
    4#
    發表於 2005-11-25 01:27 |只看該作者

    Re: [求助] unix shell command求助

    find用力去查man就好啦 :p

    看你最新檔案定義是什麼
    find . -mtime -1 這樣就是前一天修改的檔案
    很多方法啦 :p

    不然可以用點小技巧
    自己建立一個無用的檔案testfile  用來紀錄時間
    在每次搜尋的時候
    find . -newer testfile
    touch testfile

    這樣下次搜尋的時候就會找你這次搜尋之後更新的檔案了
    回復

    使用道具 舉報

    46

    主題

    0

    好友

    636

    積分

    該用戶從未簽到

    文章
    648
    5#
    發表於 2005-11-25 09:11 |只看該作者

    Re: [求助] unix shell command求助

    Originally posted by allenown at 2005-11-25 01:27 AM:
    find用力去查man就好啦 :p

    看你最新檔案定義是什麼
    find . -mtime -1 這樣就是前一天修改的檔案
    很多方法啦 :p

    如果想要找某個目錄下最新的檔案, 又不知道是多久前修改的, 這樣就要從 -mtime -1 一直往前try, 似乎不理想.

    不然可以用點小技巧
    自己建立一個無用的檔案testfile  用來紀錄時間
    在每次搜尋的時候
    find . -newer testfile
    touch testfile

    這樣下次搜尋的時候就會找你這次搜尋之後更新的檔案了

    我認為可以列出所有檔案, 再用ls -l列出mtime, 再根據mtime來排序, 自然可以得出最新的檔案.
    Visor Deluxe(兩年)/Visor Phone(一年)->Visor Prism/Visor Phone(兩年)->Mio 8380(25天)->Treo 600(三年)->Treo680
    Minolta 600si and F200, 24-85/F3.5-4.5, 100-300/F4.5-5.6, 80-200/F2.8, 5400HS
    回復

    使用道具 舉報

    44

    主題

    0

    好友

    514

    積分

    啊又換新老闆了。

    該用戶從未簽到

    文章
    457
    6#
    發表於 2005-11-25 11:12 |只看該作者

    Re: [求助] unix shell command求助

    Originally posted by bibibo at 2005-11-24 10:02:
    又來求助了 B)
    實在try不出來如何用find去找出最新file ><
    我想寫一個shell, 可用來查出某路徑下最新檔案的名稱
    不曉得有沒有example可以參考? B) 謝謝


    一行文:
    find ./ -mtime -365 -exec stat -f "%Sm %N" -t "%Y%m%d%H%M%S" {} \; | sort | tail -n 1

    裡面的 365是指 365 天內的。嫌太慢可以調小一點。
    回復

    使用道具 舉報

    42

    主題

    0

    好友

    259

    積分

    該用戶從未簽到

    文章
    262
    7#
    發表於 2005-11-25 17:06 |只看該作者

    Re: [求助] unix shell command求助

    如果是在同一個目錄, 其實用 ls -alt |more 就會按時間排給你了
    有時候世界單純的只剩下
    音響那頭的blur
    書架上的Umberto Eco
    口中的Double Espresso
    遠方心愛的妳
    及正在上網的我
    回復

    使用道具 舉報

    67

    主題

    0

    好友

    237

    積分

    該用戶從未簽到

    文章
    135
    8#
    發表於 2005-11-25 17:20 |只看該作者

    Re: [求助] unix shell command求助

    謝謝各位前輩的幫忙
    我是用csh去寫這個功能
    幾過幾次測試..不能使用ls -lt , 因為我只要抓出最新檔案的檔案名稱B)
    另外還試過
    find ./ -mtime -365 -exec stat -f "%Sm %N" -t "%Y%m%d%H%M%S" {}  \; | sort | tail -n 1
    我把L改寫成:
    find ./ -print -mtime -365 -exec stat -f "%Sm %N" -t "%Y%m%d%H%M%S" {}  \; | sort | tail -n 1
    可是出來的檔案不是最新的, 差不多一個多小時的時間差 B)
    回復

    使用道具 舉報

    21

    主題

    0

    好友

    358

    積分

    該用戶從未簽到

    文章
    288
    9#
    發表於 2005-11-25 18:17 |只看該作者

    Re: [求助] unix shell command求助

    前面有幾位提到的都可用啊。
    ls -alt 為什麼不行!你只要稍微處理一下就好了。
    像我在這種時候愛用 Perl:

      ls -alt *.* | perl -e '$_=&lt;STDIN&gt;;print /(\S+)$/'

    就可抓出第一個檔名了(相信有很多其他方法,也一定有更簡單的)。

    ls 也可以去掉 -a -l,也可不用 Regex:

      ls -t | perl -e '$_=&lt;STDIN&gt;;print split'

    如果這是你的工作內容的話,建議你還是學一下 Script Language
    跟 Regular Expression。不管是 Shell Script 或是 Perl Script,
    解決問題的方式百百種,你也不一定要侷限於 One-Line Program。


    Originally posted by bibibo at 2005-11-25 05:20 PM:
    謝謝各位前輩的幫忙 :I
    我是用csh去寫這個功能
    幾過幾次測試..不能使用ls -lt , 因為我只要抓出最新檔案的檔案名稱B)
    另外還試過
    find ./ -mtime -365 -exec stat -f "%Sm %N" -t "%Y%m%d%H%M%S" {}  \; | sort | tail -n 1
    我把L改寫成:
    find ./ -print -mtime -365 -exec stat -f "%Sm %N" -t "%Y%m%d%H%M%S" {}  \; | sort | tail -n 1
    可是出來的檔案不是最新的, 差不多一個多小時的時間差 B)

    [ Last edited by barista on 2005-11-25 at 18:41 ]
    回復

    使用道具 舉報

    44

    主題

    0

    好友

    514

    積分

    啊又換新老闆了。

    該用戶從未簽到

    文章
    457
    10#
    發表於 2005-11-26 02:48 |只看該作者

    Re: [求助] unix shell command求助

    Originally posted by bibibo at 2005-11-25 17:20:
    謝謝各位前輩的幫忙
    我是用csh去寫這個功能
    幾過幾次測試..不能使用ls -lt , 因為我只要抓出最新檔案的檔案名稱B)
    另外還試過
    find ./ -mtime -365 -exec stat -f "%Sm %N" -t "%Y%m%d%H%M%S" {}  \; | sort | tail -n 1
    我把L改寫成:
    find ./ -print -mtime -365 -exec stat -f "%Sm %N" -t "%Y%m%d%H%M%S" {}  \; | sort | tail -n 1
    可是出來的檔案不是最新的, 差不多一個多小時的時間差 B)


    我是有點好奇你為什麼要加一個" -print" 進去,如果照你上面說的「只要抓出檔案名稱」,那後面再串個 awk 就好了:

    find ./ -print -mtime -365 -exec stat -f "%Sm %N" -t "%Y%m%d%H%M%S" {}  \; | sort | tail -n 1 |awk '{print $2}'

    出來的檔案理論上是最新的,find 掃得到沒理由時間會錯。

    此外,我覺得 barista 說得很有道理,如果這是工作的一部份,還是要自己學過。一行程式只是為了 copy & paste 方便,效率不一定比較高,能做的事也有限。要處理固定事務的話,我還是習慣使用 perl/sh。

    ls -t | head -n 1 也很好用哦
    回復

    使用道具 舉報

    21

    主題

    0

    好友

    358

    積分

    該用戶從未簽到

    文章
    288
    11#
    發表於 2005-11-26 16:41 |只看該作者

    Re: [求助] unix shell command求助

    Originally posted by PipperL at 2005-11-26 02:48 AM:
    ls -t | head -n 1 也很好用哦


    這樣子的話:

      ls -t | head -1

    也行

    這種小工具倒是不一定每次都會想到要用,也不一定知道要用。
    久了生疏了也容易忘記。
    如果是我還是會先考慮用 Perl。
    (不過 find sort head tail awk cut wc ls grep 等等這些工具都很基本,像我現在少用忘了無可厚非,你可能得仔細研究一下)
    (系統裡有很多 Shell Script 的例子可供你參考,有些工具沒見過還不知道可以這樣使用)

    [ Last edited by barista on 2005-11-26 at 16:52 ]
    回復

    使用道具 舉報

    67

    主題

    0

    好友

    237

    積分

    該用戶從未簽到

    文章
    135
    12#
    發表於 2005-11-28 17:26 |只看該作者

    Re: [求助] unix shell command求助

    謝謝各位前輩的指教
    ls -t | perl -e '$_=<STDIN>;print split'
    ls -t | head -n 1
    兩個都可以run.. 已經搞定了
    真不好意思..
    因為做server的人離職了
    臨危受命
    時間上太趕了
    我對server的東西又不熟 B)
    所以只好上來求教 B)
    謝謝大家
    回復

    使用道具 舉報

    42

    主題

    0

    好友

    259

    積分

    該用戶從未簽到

    文章
    262
    13#
    發表於 2005-11-29 09:16 |只看該作者

    Re: [求助] unix shell command求助

    unix 就有這個好處, 條條大路通羅馬, 只不過有些東西要自己加工處理一下, 我是比較愛用簡單的指令, 最多再寫成shell就好了, 命名規則清楚一點, 應該就沒問題了
    有時候世界單純的只剩下
    音響那頭的blur
    書架上的Umberto Eco
    口中的Double Espresso
    遠方心愛的妳
    及正在上網的我
    回復

    使用道具 舉報

    您需要登錄後才可以回帖 登錄 | 免費註冊

    與站長聯繫| PALMisLIFE 掌上生活      下載:更快、更棒、更好玩

    GMT+8, 2024-9-22 18:15 , Processed in 0.065987 second(s), 31 queries , Gzip On.

    Powered by Discuz!

    © 2001-2012 Comsenz Inc. style by eisdl

    回頂部