ファイルであることを確認してください [ -f file ]

ファイルであることを確認してください [ -f file ]

次のチェックはできません

for file in `ls -R .`
do
    if [-f $file] ......

問題は、file.gzgzip圧縮ファイル)が見つかり、機能しないときにこのチェックを一致させることです。

ベストアンサー1

「動作しない」という意味を具体的に明記すれば、より良い助けになります。

とにかく、「[-f command not find」という出力が出たら、[と内部の間にスペースを入れる必要があります(/usr/bin/[すべての機能を備えたコマンドになるには)。

if [ -f $file ] ...

ただし、ファイルにスペースやその他の奇妙な文字が含まれる可能性があるため、少なくとも「$ file」の周りに引用符を付けることをお勧めします。

if [ -f "$file" ] ...

より良い方法は、ls -R .構文解析の代わりに以下を使用することです。find .

おすすめ記事