パイプで提供される複数のファイルの存在をテストします。

パイプで提供される複数のファイルの存在をテストします。

1行に1つずつファイルのリストを提供するコマンドがあります。ファイル名は「正常」です。空白がなく、角括弧をエスケープする必要はありません。

test -fこのコマンドを同様のコマンドに渡し、次の場合にのみtrueを返したいと思います。みんなファイルが存在します。 (ライン0の動作は定義されていない可能性があります。関係ありません。)

したがって、

make_list_of_files | test -f

ところで実際に働いています。

「Bashism」はBashに必要なので許可されています。

ファイルは同じディレクトリにはありませんが、現在のディレクトリのサブディレクトリにあり、パスにはディレクトリ名が含まれます。

dir/file1
dir/file2
dir2/file3

ベストアンサー1

allExist(){
    while IFS= read -r f; do
      test -e "$f" || return 1
    done
}

make_list_of_files | allExist

これはすべてのPOSIXシェルで機能します。

おすすめ記事