我想這樣的事情的所有文件:腳本循環,並從複製命令的輸出
rpm -ql `rpm -qa | grep openssh-5`
此列出了在使用OpenSSH的-5 RPM安裝的所有文件。
我希望所有這些文件複製到文件夾:例如:MyFolder文件
所以我試試這個:
cp ``rpm -ql `rpm -qa | grep openssh-5`` myfolder
,但它失敗。 有沒有什麼出路,任何shell腳本等?
我想這樣的事情的所有文件:腳本循環,並從複製命令的輸出
rpm -ql `rpm -qa | grep openssh-5`
此列出了在使用OpenSSH的-5 RPM安裝的所有文件。
我希望所有這些文件複製到文件夾:例如:MyFolder文件
所以我試試這個:
cp ``rpm -ql `rpm -qa | grep openssh-5`` myfolder
,但它失敗。 有沒有什麼出路,任何shell腳本等?
您無法嵌套反引號。這應該工作:
cp $(rpm -ql $(rpm -qa | grep openssh-5)) myfolder
anoter方法是:
rpm -qa | grep openssh-5 | xargs -d $'\n' rpm -ql | xargs -d $'\n' cp -t myfolder
(這也處理包含空格的文件名不會換行強硬處理文件名...。)
files=${rpm -ql `rpm -qa | grep openssh-5`};
while read file do
cp $file "myfolder";
done < $files;
也許?
'$ {...}'用於參數擴展,'cp'不需要'>' – mata
嘗試
rpm -qla \*openssh-5\* | while read filename; do
cp -a "$file" "$myfolder"
done
。請注意圍繞變量的""
,這些變量考慮了文件名中的空白(在RPM軟件包中這是非常罕見的 - 但並非不可能)。
注意,以及rpm -qla
構造使事情變得更容易。
您是否嘗試將它們一個接一個地複製到循環中? – cen