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

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

cp /path/to/log/*.log /path/to/backup/folder
于 2013-10-30T01:42:00.837 回答
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 回答