您好,感谢您的帮助。我正在尝试完成一个简单的检查,以查看文件夹是否包含任何以 .log 结尾的文件。如果它确实包含任何以 .log 结尾的文件,只需将其复制到另一个文件夹即可。我确实尝试过类似的东西
if [ -f /path/to/log/*.log ]; then cp -a /path/to/log /path/to/backup/folder; fi
但这并没有给我任何足够干净的东西。
非常感谢
您可以使用 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/
您无需先检查,只需复制文件:
cp /path/to/log/*.log /path/to/backup/folder
几乎没有任何东西可以测试这肯定有效,但它应该:
for log in `ls /path/to/log | grep .log`; do
cp /path/to/log/$log /path/to/backup/folder/
done