1

こんにちは、高度なヘルプをありがとう。フォルダーに最終的に .log のファイルが含まれているかどうかを確認する簡単なチェックを実行しようとしています。.log で終わるファイルが含まれている場合は、単に別のフォルダーにコピーします。私は何かを試しました

if [ -f /path/to/log/*.log ]; then cp -a /path/to/log /path/to/backup/folder; fi

しかし、それでは作業するのに十分なほどきれいなものは得られません。

本当にありがとう

4

3 に答える 3

1

bash 配列を使用できます。

shopt -s nullglob # Expand to the empty string if no files are found
logfiles=( /path/to/log/*.log )
cp -a "${logfiles[@]}" /path/to/backup/

または POSIXLY_STRICT アプローチ:

cpIfExists() {
  if [ -f "$1" ]; then
    cp "$@"
  fi
}
cpIfExists /path/to/log/*.log /path/to/backup/
于 2013-10-30T01:44:56.113 に答える
0

これが確実に機能することをテストするものはほとんどありませんが、次のようにする必要があります。

for log in `ls /path/to/log | grep .log`; do
    cp /path/to/log/$log /path/to/backup/folder/
done
于 2013-10-30T03:12:59.240 に答える
0

最初に確認する必要はありません。ファイルをコピーするだけです。

cp /path/to/log/*.log /path/to/backup/folder
于 2013-10-30T01:42:00.837 に答える