Sinopsis standar untuk rm
utilitas ditentukan dalam standar POSIX sebagai
rm [-iRr] file...
rm -f [-iRr] [file...]
Dalam bentuk pertamanya, ia memerlukan setidaknya satu operan file, tetapi dalam bentuk keduanya tidak.
Melakukan rm -f
tanpa operan file bukanlah kesalahan:
$ rm -f
$ echo "$?"
0
... tapi itu tidak banyak membantu.
Standar mengatakan bahwa untuk -f
opsi, rm
utilitas harus...
Jangan meminta konfirmasi. Jangan menulis pesan diagnostik atau mengubah status keluar jika tidak ada operan file, atau jika operan tidak ada. Kemunculan
-i
sebelumnya opsi akan diabaikan.
Ini menegaskan bahwa rm -f
harus dapat dijalankan tanpa operan pathname dan ini bukan sesuatu yang membuat rm
keluar dengan pesan diagnostik atau status keluar bukan nol.
Fakta ini sangat berguna dalam skrip yang mencoba menghapus sejumlah file sebagai
rm -f -- "[email protected]"
di mana "[email protected]"
adalah daftar nama jalur yang mungkin kosong atau tidak, atau yang mungkin berisi nama jalur yang tidak ada.
(rm -f
masih akan menghasilkan pesan diagnostik dan keluar dengan status keluar bukan nol jika ada masalah izin mencegah file bernama dihapus.)
Menjalankan utilitas tanpa operan opsi atau pathname adalah kesalahan:
$ rm
usage: rm [-dfiPRrv] file ...
$ echo "$?"
1
Hal yang sama berlaku untuk GNU rm
(di atas menunjukkan OpenBSD rm
) dan implementasi lain dari utilitas yang sama, tetapi pesan diagnostik yang tepat dan status keluar bukan nol mungkin berbeda (di Solaris nilainya 2, dan di macOS nilainya 64, misalnya).
Kesimpulannya, GNU rm
manual mungkin sedikit tidak tepat karena memang benar bahwa dengan beberapa opsi (-f
, yang merupakan opsi opsional), operan pathname bersifat opsional.
sejak edisi 2016, setelah resolusi bug ini, lihat edisi sebelumnya untuk referensi.
POSIX adalah standar yang mendefinisikan sistem Unix dan bagaimana perilakunya. Standar ini diterbitkan oleh The Open Group. Lihat juga pertanyaan "Apa itu POSIX?".
Secara teknis, sinopsisnya benar, tetapi membingungkan. Ada kasus di mana nama file tidak diperlukan:
rm --help
rm --version
(saat menggunakan GNU rm
). Semua kasus lainnya memerlukan nama file.
Versi lain dari rm
tampilkan file sebagai non-opsional, mis. di halaman manual OpenBSD.
Sinopsis yang lebih akurat untuk GNU rm
akan menampilkan tiga varian:
rm
[opsi ...] berkas ...
rm --help
rm --version