我已經編譯Linux內核現在我想.ko文件複製所有*在一個單獨的文件夾如何將一個命令的o/p賦給shell腳本中另一個命令的參數?
所以
find ./kernel -name "*.ko"
它會給我所有.ko文件的列表。 現在我想給這個列表作爲cp命令的參數。
像
cp -rpf $filer_ko temp/
所以如何做到這一點在shell腳本和終端?
我已經編譯Linux內核現在我想.ko文件複製所有*在一個單獨的文件夾如何將一個命令的o/p賦給shell腳本中另一個命令的參數?
所以
find ./kernel -name "*.ko"
它會給我所有.ko文件的列表。 現在我想給這個列表作爲cp命令的參數。
像
cp -rpf $filer_ko temp/
所以如何做到這一點在shell腳本和終端?
數據一個這將找到所有在.ko
結尾的文件,將它放在一個循環列出管道將每一個文件的迭代(即使他們有空格 - 這可能不是這種情況),並將複製臨時目錄中的每個文件。
find ./kernel -name "*.ko" | while read file; do cp $file temp/ ; done
根據我認爲下面的代碼應該滿足您的需要。我只是幹了一次。 。結果存儲在一個variable
然後looping
,以提取一個
#! /bin/bash
$op = find ./kernel -name *.ko"
for zf in $op
do
cp -rpf $zf
tail $zf
done
這將不帶空格處理的文件名。 –
爲什麼?這有什麼問題? – softvar
如果有一個名爲'bla blue'的文件名,這個for循環就會遍歷它,首先將'bla'分配給'zf',然後將'blue'分配給'zf',從而導致失敗。 –
xargs
通常用於此。但不在這裏。
見,find
有這個能力內建
試試這個:
find ./kernel -name "*.ko" -exec cp -rpf {} temp/ \;
假設GNU工具,「find ./kernel -name」* .ko「-exec cp -rpf -t temp/{} +' –
另一種方法:使用xargs的
find ./kernel -name "*.ko" -print0 | xargs -0 cp -rpf -t temp/
但是......但是......但是'find'的'-exec'標誌確實如此! – rabensky