2012-03-20 98 views
3

Possible Duplicate:
Why does Mac's $find not have the option -printf?發現:-printf:未知的選項

不知道什麼是錯用下面的命令,但任何人都可以當場錯誤:

find public_html -name '*.php' -printf '%h \n' | sort -u > dirlist.txt 

基本上,我attemtping找出在我的public_html所有具有* .php擴展名的目錄的目錄名稱。然後打印出找到該文件的目錄。這樣做的輸出管道進行排序,重複的條目由-u標誌去掉,並將結果保存在新的文件dirlist.txt

但是我得到執行時是:

find: -printf: unknown option 

不知道在那裏我得到這個錯誤

感謝

+1

這個錯誤是因爲'find'不*有*一個'printf'選項 - 完全錯誤信息說什麼。檢查你係統上的'man printf'找出該做什麼。 – 2012-03-20 17:03:45

+2

Linux,OS X,BSD? – Adam 2012-03-20 17:04:21

+0

嗨,亞當,它的OS X獅子,使用mac終端 – user1020069 2012-03-20 17:06:44

回答

5

你找到的版本似乎沒有-printf選項。

我會做同樣的任務,像這樣:

find public_html -type f -name '*.php' | xargs -n1 dirname | sort -u > dirlist.txt 
+0

我想這是因爲我遵循OS X終端上的Linux手冊! – user1020069 2012-03-20 17:06:27

+0

謝謝大家! stackoverflow社區是驚人的,希望我快速開始貢獻以及! – user1020069 2012-03-20 17:13:51

+0

@ user1020069:我建議更新你的名字。 – bukzor 2012-03-20 17:14:52

1

是的,你的版本似乎不具有-printf選項 - 蘋果變種犯規,我知道 - 有可能是別人

你的選擇是管道它sed和排序,像這樣:

find public_html -name '*.php'|sed 's#\(.*\)/.*#\1#' |sort -u 
相關問題