ファイルの内容を変更するスクリプトを作成していますが、出力リダイレクトhosts
で停止しました。head
これにより、head -n -1 hosts >hosts
私のhosts
ファイルは空であることが判明し、はい、1つ以上の行があります。
答え1
これは、ファイルのリダイレクト時にシェルがファイルを切り捨てるためです。これは頭が読む機会を持つ前に起こります。
一時ファイルを使用できます。
head -n1 hosts > hosts.tmp && mv hosts.tmp hosts
または、sponge
moreutils パッケージを使用します。
head -n1 hosts | sponge hosts