編集する前にタッチしてファイルを作成すると、どのような利点がありますか?例:
touch foo
vi foo
それとも編集者に直接渡しますか?良い:
vi foo
touch
e を使ったチュートリアルをたくさん見てくださいvi
。
答え1
touch
最初にファイルを編集すると、ファイルシステムが読み取り専用であるかどうかを確認するために、エディタで時間を無駄にするのではなく、実際にファイルを作成できることを確認できます。
答え2
提供された回答に加えて、タッチの1つの利点は、タッチ中に同じファイルを編集している他のユーザー/ターミナルが変更を保存しようとすると警告が表示されることです。
WARNING: The file has been changed since reading it!!!
Do you really want to write to it (y/n)?
直接変更せずにファイルだけをタッチしても、通知が表示されます。
答え3
許可された回答に加えて、以下が含まれます。
touch
ファイルタイムスタンプの更新で有名です。既存のファイルに使用すると、touch
ファイルタイムスタンプは現在の日時で更新されます。ファイルが存在しない場合は、空のファイルが作成され、現在の日時がタイムスタンプされます。
vi
一方、直接書かないと新しいファイルは生成されません。
たとえば、と入力するとvi test.txt
いくつかの説明が入力されます:q!
。test.txt
答え4
touch
最初はingを実行しても何の利点もありません。vi
ファイルが存在しない場合、ファイルが生成されます。
許可された答えは、エディタで時間を無駄にする前にそこに書き込むことができることを確認していると言います。はい。しかし、今はtouch
毎回入力するのに時間を無駄にしています。どこかに書くことができないというのは、それが動作する頻度と比較してかなり珍しいことです(sudo
ホームディレクトリの内側または外側にあるファイルを覚えている/tmp
か、rootとしてログインしている場合)。
エディタを開き、必要な操作を実行してからファイルを保存します。それでも機能しない場合は、:w!
別の場所に保存して保存して:w ~/asdf
問題を解決してください。回復後、一時ファイルのファイル内容を元のファイルにコピーできますcat ~/asdf > /mnt/example.txt && rm ~/asdf
。cat
orの代わりにmv
orを使用する理由cp
は、ターゲットの権限やその他の属性を使用するためです。
さらに、より高度なコマンドラインを使用するために問題を解決しながら、+Background(または、または使用)をvi
使用して最後に書き込みコマンドを再実行することもできます。CtrlZ:suspend
:sus
fg
編集:レスポンスで投稿が改善されました。/u/G-マンのコメント。ありがとうございます!