OSXでは、タグを使用してさまざまなファイルカテゴリを識別できます。以下は、Finderで見るとラベルが異なる2つのテキストファイルです。
私はこれらのファイルをたくさん持っていて、これらのファイルを何度も編集するためのbashスクリプトを書いています。たとえば、私はこうします。
$ sed 's/old text/new text/' file1.txt > /tmp/foo.txt
$ cp -p /tmp/foo.txt file1.txt
この場合、目的のファイルコンテンツを取得しましたが、タグが失われました。
質問:元のファイルのタグを編集したファイルにコピーする方法は?
ベストアンサー1
を実行すると> /tmp/foo.txt
上書きされます。コンテンツとの/tmp/foo.txt
出力ですsed 's/old text/new text/' file1.txt
。/tmp/foo.txt
このコマンドを実行するとファイルが存在しないため、bashはファイルを生成してファイルに書き込みます。
-p
次にフラグを使用すると、cp
そのプロセスでの権限と属性をコピーして上書きします。/tmp/foo.txt
file1.txt
代わりに、あなたが望むのは、おなじみのコンテンツfile1.txt
でコンテンツを上書きすることです。/tmp/foo.txt
走る
sed 's/old text/new text/' file1.txt > /tmp/foo.txt
cat /tmp/foo.txt > file1.txt
これは権限や属性をコピーせず、その逆も同様です。つまり、file1.txt
既存の/tmp/foo.txt
メタデータを保持しますfile1.txt
が、コンテンツを変更することです。
sed -i
この特別なケースでは、pbmの提案に従うこともできます。