Di baris ini:
tr a A < /etc/hosts | sort -r |pr -d > /etc/hosts
apa yang akan menjadi hasil yang diharapkan? Saya tahu huruf kecil 'a' akan berubah menjadi huruf besar 'A' tapi apa selanjutnya? Apakah file asli akan ditimpa karena pengalihan ke nama file yang sama?
shell
io-redirection
tr
tdharrison
sumber
sumber
bash: /etc/hosts: Permission denied
kesalahan (dengan asumsi shell Anda adalah bash), kecuali jika Anda menjalankannya sebagairoot
./etc/hosts
biasanya hanya dapat ditulis oleh root. Jika Anda menjalankan ini sebagairoot
(yang seharusnya tidak Anda lakukan), Anda akan mendapatkan yang kosong/etc/hosts
seperti yang dijelaskan Michael Homer.Jawaban:
Hasil yang diharapkan adalah
/etc/hosts
file kosong .Pengalihan
> /etc/hosts
terjadi dan memotong file sebelum program mulai berjalan dantr
mulai membaca dari file.Untuk menulis output
/etc/hosts
, Anda bisa bekerja dengan salinan file (atau memindahkan file output Anda ke tempatnya sesudahnya), atau menggunakansponge
perintah dari moreutils , yang akan menyerap input standar dan menulis ke file:Dalam hal itu, setiap "a" di
/etc/hosts
akan diganti dengan "A", semua garis akan diurutkan secara terbalik sesuai dengan lokal Anda , garis kosong akan dimasukkan di antara setiap baris , dan hasilnya akan dimasukkan ke dalam/etc/hosts
.Anda juga mungkin menemukan berguna:
sumber