私はこのようなことを試みています:
rpm -ql `rpm -qa | grep openssh-5`
これは、openssh-5 rpm を使用してインストールされたすべてのファイルをリストします。
これらすべてのファイルをフォルダーにコピーしたい: 例: myfolder
だから私はこれを試します:
cp ``rpm -ql `rpm -qa | grep openssh-5`` myfolder
しかし、それは失敗します。そのようなシェルスクリプトはありますか?
バックティックをネストすることはできません。これはうまくいくはずです:
cp $(rpm -ql $(rpm -qa | grep openssh-5)) myfolder
別の方法は次のとおりです。
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;
多分?
試す
rpm -qla \*openssh-5\* | while read filename; do
cp -a "$file" "$myfolder"
done
. ""
ファイル名の空白を考慮する変数の周りに注意してください(確かに、RPM パッケージでは非常にまれですが、不可能ではありません)。
rpm -qla
物事を簡単にする構造にも注意してください。