检查日志文件的文件夹

时间:2013-10-30 01:22:56

标签: bash sh

您好,感谢您提供的帮助。我试图完成一个简单的检查,以查看文件夹是否包含.log中的任何文件。如果它确实包含任何以.log结尾的文件,只需将其复制到另一个文件夹即可。我确实试过像

这样的东西
if [ -f /path/to/log/*.log ]; then cp -a /path/to/log /path/to/backup/folder; fi

但这并没有给我任何足够干净的东西。

非常感谢

3 个答案:

答案 0 :(得分: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/

答案 1 :(得分:0)

您不需要先检查,只需复制文件:

cp /path/to/log/*.log /path/to/backup/folder

答案 2 :(得分:0)

没有任何东西可以测试这是否有效,但它应该:

for log in `ls /path/to/log | grep .log`; do
    cp /path/to/log/$log /path/to/backup/folder/
done