Dalam bash, tautan perintah
echo test > actual.txt
akan mengganti konten file yang disebut actual.txtdengan "test", dan membuat file jika tidak ada. Namun, jika file itu ada, bash hanya akan membukanya, memotongnya, dan menulis konten baru ke dalam file.
Secara khusus, perintah pengalihan gagal dalam skenario ini:
ln -s /some/illegal/path link.txt
echo test > link.txt
Bash 4.4.12 memberi saya pesan kesalahan yang membingungkan link.txt: No such file or directory.
Salah satu cara untuk menghindari ini adalah memastikan untuk menghapus file sebelum menjalankan perintah yang diarahkan.
rm link.txt && echo test > link.txt
Saya bertanya-tanya, apakah ada beberapa pilihan tweak bash atau operator redirect yang akan mencegah mode kegagalan ini. Ada ide?
link.txtadalah tautan ke/dir/filetempat/dirfile bertipe direktori tempat Anda menulis dan mencari izin, tetapi/dir/filetidak ada (dan pengalihan akan membuatnya tanpa pesan kesalahan)? Bagaimana jika/dir/fileada tetapi bukan file biasa (perangkat, fifo, direktori ...), atau Anda tidak memiliki izin menulis atau mencari izin/dir?