$ '\ 0'が ''と同じ理由は何ですか?

$ '\ 0'が ''と同じ理由は何ですか?

複数のファイルで操作を実行する一般的な方法は次のとおりです。これについて私を非難しないでください。

for f in $(ls); do …

スペースやその他の奇妙な文字を含むファイルから安全にするには、次の簡単な方法に従ってください。

find . -type f -print0 | while IFS= read -r -d '' file; …

ここ-d ''に図のようにASCII NUL設定の略語を示します-d $'\0'

ところで、なぜそうなのか?なぜ''そして$'\0'同じですか? Bash Cルートの空の文字列は常にnullで終わるからですか?

ベストアンサー1

これman page of bash内容は次のとおりです。

          -d delim
                 The first character of delim is  used  to  terminate  the
                 input line, rather than newline.

文字列は通常 null で終わるため、空の文字列の最初の文字は null バイトです。 - 合理的だと思います。 :)

ソースは次のように書きました。

static unsigned char delim;
[...]
    case 'd':
      delim = *list_optarg;
      break;

空の文字列の場合はdelimnull バイトです。

おすすめ記事