1

私はこのようなことを試みています:

rpm -ql `rpm -qa | grep openssh-5`

これは、openssh-5 rpm を使用してインストールされたすべてのファイルをリストします。

これらすべてのファイルをフォルダーにコピーしたい: 例: myfolder

だから私はこれを試します:

cp ``rpm -ql `rpm -qa | grep openssh-5`` myfolder

しかし、それは失敗します。そのようなシェルスクリプトはありますか?

4

3 に答える 3

4

バックティックをネストすることはできません。これはうまくいくはずです:

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

(これはスペースを含むファイル名も処理します。改行を含むファイル名は扱いません...)

于 2012-05-21T07:59:15.480 に答える
0
files=${rpm -ql `rpm -qa | grep openssh-5`};

while read file do
    cp $file "myfolder";
done < $files;

多分?

于 2012-05-21T08:01:30.350 に答える
0

試す

rpm -qla \*openssh-5\* | while read filename; do
    cp -a "$file" "$myfolder"
done

. ""ファイル名の空白を考慮する変数の周りに注意してください(確かに、RPM パッケージでは非常にまれですが、不可能ではありません)。

rpm -qla物事を簡単にする構造にも注意してください。

于 2012-05-21T08:23:08.847 に答える