投稿

xxdコマンドにファイル変更機能はあるか

xxdコマンドが既存ファイルを更新する条件 xxdコマンドをエージェントAIに実行させる際、どのような呼び出し方であれば既存ファイルへの 変更が発生するのかを、xxd本体のソースコードに基づいて整理する。 1. 判断基準の結論 既存ファイルが更新されるかどうかを分けるのは -r オプションの有無ではない 。 本質的な条件は次の2点である。 コマンドラインに outfile(第2引数)が指定されているか そのoutfileが 既存のファイルパスを指しているか この2条件が満たされる場合、 -r の有無に関わらず既存ファイルは変更される。 -r が変えるのは「変更が起きるかどうか」ではなく「どのように変更されるか」である。 2. ソースコード上の根拠 vim本家のxxd.cにおける、outfileを開く処理の該当箇所は以下の通りである。 int mode = revert ? O_WRONLY : (O_TRUNC|O_WRONLY); if (((fd = OPEN(argv[2], mode | BIN_CREAT(revert), 0666)) < 0) || (fpo = fdopen(fd, BIN_WRITE(revert))) == NULL) revert は -r 指定の有無を表すフラグである。ここでのモード指定が、 既存ファイルへの影響を決定づけている。 -r なし ( revert =0): mode = O_TRUNC | O_WRONLY 。 O_TRUNC が付与されるため、 outfileが既存ファイルであれば開いた瞬間に中身が消去され、新たなhexdumpテキストで 上書きされる。 既存内容は完全に失われる。 -r あり ( revert =1): mode = O_WRONLY ( O_TRUNC なし)。truncateされないため、 hexdump内のアドレス情報に基づき、該当オフセットのバイトだけが上書...

AIエージェント用 grilling スキルの導入コマンド

npx skills add https://github.com/mattpocock/skills --skill grilling 参考: https://www.skills.sh/mattpocock/skills/grilling

Windowsでネットワークプロファイル(パブリック↔プライベート)の切り替え方法

PowerShell で以下のコマンドを利用 # 現在のネットワークプロファイルを確認 Get-NetConnectionProfile # プロファイルをプライベートに変更(インターフェース名を指定) Set-NetConnectionProfile -InterfaceAlias "インターフェース名" -NetworkCategory Private # パブリックに変更する場合 Set-NetConnectionProfile -InterfaceAlias "インターフェース名" -NetworkCategory Public

エクセルで表の違いを強調する条件付き書式

条件付き書式ボタンから、「新しいルール...」 「スタイル:クラシック」で、 「数式を使用して、書式設定するセルを決定」を選択し、以下のような数式を設定。 =H7 H32 書式は、「濃い赤の文字、明るい赤の背景」を選択。

Macでgitリポジトリのチェックアウト時改行コードCRLF自動変換を適用する

※ 未コミットの変更が全て破棄されるコマンドなので注意 # 現在の状態を確認(何も出てこなければ無効) git config --local core.autocrlf # リポジトリの改行コード自動CRLF変換を有効にする git config --local core.autocrlf true # Gitが追跡しているファイルをすべて削除する git ls-files -z | xargs -0 rm -f # 削除したファイルを復活させる(CRLF改行で復活する) git reset --hard

git で master ブランチ以外をチェックアウトしている状態で、 master ブランチを pull するコマンド

git fetch origin master:master 同時にチェックアウトする場合は以下。 git fetch origin git switch -C master origin/master もしくは、 git fetch origin git checkout -B master origin/master

macOSで指定するフォルダにPATHを通す(zsh)

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc source ~/.zshrc