そのため、すべての.pngファイルをアイコンディレクトリにコピーして名前を変更しようとしました。
$ cp /opt/pt/art/{pka.png,pkt.png,pkz.png} ~/.local/icons/{application-x-pka.png,application-x-pkt.png,application-x-pkz.png}
ただし、次の出力エラーが発生します。
cp: target '/home/carl/.local/share/icons/application-x-pkz.png/..' is not a directory
どうすればいいですか?
答え1
cp コマンドは複数の宛先を受け入れません。
$ for a in pka pkt pkz; do
cp /opt/pt/art/${a}.png ~/.local/icons/application-x-${a}.png
done
答え2
ホームディレクトリでpng、拡張子を含むすべてのファイルを見つけてコピーするには~/backup
(フォルダは単なる例です)、次のことを試してください。
cd
find . -regex '.*\(png\)' \! -path './backup/*' -exec echo cp -t backup {} +
そして名前を変更してください
a=1
for i in *.png; do
new=$(printf "%04d.png" "$a") #04 pad to length of 4
mv -i -- "$i" "$new"
let a=a+1
done