/tmp/bbsnode1
ファイルを見つけてファイルがある場合は、削除するシェルスクリプトがあります。私がやりたいことは、ファイル(/tmp/bbsnode2
、、、/tmp/bbsnode3
)/tmp/bbsnode4
が複数ある場合はすべて削除することです。ただし、すべて存在する場合のみ削除してください。
これが私が今まで持っているものです:
if [ -f /tmp/bbsnode1 ]
then
/usr/bin/rm /tmp/bbsnode1
fi
ベストアンサー1
私はシェルを使用します機能スクリプトの代わりにこれを行うには、次のようにします。
rm-all-or-none() {
for f; do
[ -f "$f" ] ||
{ printf '%s is not an existing file, no files removed\n' "$f" >&2
return 1;}
done
rm -fv -- "$@"
}
次に、globの代わりに中かっこ拡張を使用して呼び出します。 Globは次のファイルにのみ拡張されます。存在するただし、この場合は、次の場合にのみファイルを指定して削除しようとします。みんなその中には以下が含まれます:
rm-all-or-none /tmp/bbsnode{1..4}
より長いバージョン:
rm-all-or-none() {
for f in "$@"; do
if [ -f "$f" ]; then
:
else
printf '%s is not an existing file, no files removed\n' "$f" >&2
return 1
fi
done
rm -fv -- "$@"
}
また見なさい: