find /log/ -mtime -31 -type f -name ""*data.txt"" -printf ""cp -p %p /Backup/%Td/\n"" | sh
cronジョブでこのコマンドを設定しようとすると、文句が出ますunknown predicate -p
。実際にはcronの問題ではなく、シェルスクリプトの問題のようです。
この問題をどのように解決できますか?引用は-p
役に立ちません。
答え1
引用符付き文字列は二重引用符で囲まれているため、実際にはまったく引用符ではありません。
あなたは:
find /log/ -mtime -31 -type f -name ""*data.txt"" -printf ""cp -p %p /Backup/%Td/\n"" | sh
これはおそらく次のとおりです。
find /log/ -mtime -31 -type f -name "*data.txt" -printf "cp -p %p /Backup/%Td/\n" | sh
しかし、おそらくこうしてはいけないようです。を使用してこれらのファイルをコピーする必要がありますfind -exec
。