Terkadang saya melihat perintah berikut:
find . -name * -exec ls -a {} \;
Saya diminta untuk mengeksekusi ini.
Apa yang dimaksud di {} \;
sini?
-name *
lebih buruk dari mubazir. Karena tanda *
kutip tidak dikutip, shell memperluasnya ke daftar nama file di folder saat ini, dengan ruang-ruang yang salah dirawat, mengarah ke hasil yang tidak terduga atau pesan kesalahan. Sebagai tambahan, find
memiliki banyak fungsi, salah satunya adalah membuat daftar file; ini menghindari penggunaan -exec
. Misalnya, Anda dapat menggunakan find . -print
atau find . -ls
. Akhirnya, ada dua cara untuk melarikan diri semi-colon: baik seperti yang Anda lakukan dengan garis miring terbalik, \;
atau dengan mengutip: ';'
. Gunakan mana pun yang Anda merasa lebih nyaman.
-name *
berlebihan.