.desktop
私が使用しているすべてのユーザーデスクトップからファイルをコピーするには、
ls -1 /home/ | while read line ; do cp ~/baz.desktop /home/$line/baz.desktop ; done
よりエレガントな方法があるようです。
乾杯、習近
平
ベストアンサー1
ユーザーの知識レベルに応じて、次のことができます。それらファイルをアカウントに強制的に追加するのではなく、ファイルをコピーしたり、一元的にインストールしたりできます。Mariacziがコメントで提案したように。
私が理解したことが正しい場合は、このファイルを各ユーザーのホームディレクトリにコピーする必要があります。私はあなたがこれをルートとしていると仮定します。操作が完了したら、レプリカが各ユーザーのホームディレクトリにある必要があるだけでなく、そのユーザーが所有し、users
権限0644を持つグループに属する必要があるとします。
これはループを介して行うことができますinstall
(ホームディレクトリが下にあると仮定/home
)。このinstall
ユーティリティは同様に機能しますcp
が、ユーザーとグループの所有権と権限を一度に設定できます。
for homedir in /home/*/; do
user=${homedir%/} # remove '/' from end of $homedir
user=${user#/home} # remove '/home' from start of $user
install -b -o "$user" -g users -m 644 ~/baz.desktop "$homedir"
done
install -b
ファイルがすでに存在する場合、そのファイルのバックアップがターゲットに作成されます。あるいは、ファイルがすでに存在する場合は、インストールを完全にスキップできます。
for homedir in /home/*/; do
if [ ! -e "$homedir/baz.desktop" ]; then
user=${homedir%/} # remove '/' from end of $homedir
user=${user#/home} # remove '/home' from start of $user
install -o "$user" -g users -m 644 ~/baz.desktop "$homedir"
fi
done
関連:
- なぜ`ls`を解析しないのですか?
install
あなたのシステムのマニュアルです。