1
我想使用bash find命令來創建一個數組元素和搜索元素在裏面用for循環。 我需要做這樣的事情:
for file in $(find -? dirname) ; do
echo element contains $file
done
我知道,你可以做找到MAC(其解析空格和\ n的xargs的一樣)-X,但有什麼辦法可以在Linux上做? 預先感謝您的回覆-X的
我想使用bash find命令來創建一個數組元素和搜索元素在裏面用for循環。 我需要做這樣的事情:
for file in $(find -? dirname) ; do
echo element contains $file
done
我知道,你可以做找到MAC(其解析空格和\ n的xargs的一樣)-X,但有什麼辦法可以在Linux上做? 預先感謝您的回覆-X的
的OSX find
手冊頁說:
但是,您不妨考慮結合 的-print0主要用``xargs的-0「」作爲一個有效的選擇。
所以,你可以採取這個建議:
find dirname -print0 | xargs -0 grep foo # or whatever it is you wanted to do
或者,找到可以爲每個找到的文件本身執行命令:
find dirname -exec echo found {} \;
注意逃脫;
終止 - 它只是你必須吸取約find -exec
。
或爲xargs的類分塊:
find dirname -exec grep foo {} +
最好是用'find - ? dirname -exec echo元素包含{} \;'。我不知道-X在OSX中做了什麼,所以在這一點上我不能幫你。 – slim
OS X文檔聲明'-X'使得它可以跳過會導致'xargs'問題的文件名,因爲它們包含空格或引號。更好的解決方案是使用'find -exec'或'find -print0 | xargs -0'。 – Barmar