猫の難読化を含むファイルを追加する

猫の難読化を含むファイルを追加する

次のコマンドを実行すると:

$ cat picture.jpg > copy1.jpg

そして

$ cat -v picture.jpg > copy2.jpg

copy1.jpgはい、完璧なレプリカpicture.jpgですが、copy2.jpgはるかに大きいですpicture.jpg

copy2.jpgこれは、catが考える行の終わりが置き換えられ^M^M各行の終わりのサイズが行の終わりよりも大きいためだと思います。これは正しいですか?

これにより、inインスタンスcat copy2.jpgがないことがわかります。^Mcopy2.jpg

ここで何が起こっているのでしょうか?>出力が入力と異なる場合は、catを使用してファイルを完全にリンクできますか?

答え1

それだけではありません^Mすべて印刷できない文字(現在のロケールで何を意味するか)を含むバイトはcat -v

接続ファイルを使用している場合は、cat出力を変更するすべてのオプションを避ける必要があります。(数字行)、(マーカー行で終わる)、(繰り返し空白行を抑制する)、-b(印刷可能なコンテンツを使用して印刷できない文字を表示)。-n-E$-s-v-T

答え2

あなたの分析が私の考えに合うようです。catこれが主な機能なので、ファイルをリンクするために使用します。-vスイッチや問題のスイッチなしでこれを実行してください。

cat -v ..このファイルを使用すると、デフォルトでは廃止されます。画像ビューアで開いてみましたか?私はあなたの方法を試してみましたが、これは私の状況です。

次のコマンドを使用して、その証拠を表示することもできますfile

$ file copy*
copy1.png: PNG image data, 1440 x 847, 8-bit/color RGB, non-interlaced
copy2.png: ASCII text, with very long lines

cat情報ページには、このトピックの詳細があります。

'-v'
'--show-nonprinting'
     Display control characters except for LFD and TAB using '^'
     notation and precede characters that have the high bit set with
     'M-'.

On systems like MS-DOS that distinguish between text and binary
files, 'cat' normally reads and writes in binary mode.  However, 'cat'
reads in text mode if one of the options '-bensAE' is used or if 'cat'
is reading from standard input and standard input is a terminal.
Similarly, 'cat' writes in text mode if one of the options '-bensAE' is
used or if standard output is a terminal.

それで^Mはどこにありますか?

copy2.jpgファイルを開くと、vim次のように散在していることがわかります。

                  SS#1

関連情報