Dalam bash, tautan perintah
echo test > actual.txt
akan mengganti konten file yang disebut actual.txt
dengan "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.txt
adalah tautan ke/dir/file
tempat/dir
file bertipe direktori tempat Anda menulis dan mencari izin, tetapi/dir/file
tidak ada (dan pengalihan akan membuatnya tanpa pesan kesalahan)? Bagaimana jika/dir/file
ada tetapi bukan file biasa (perangkat, fifo, direktori ...), atau Anda tidak memiliki izin menulis atau mencari izin/dir
?